【发布时间】:2019-04-22 01:54:48
【问题描述】:
我对 C++ 很陌生,所以如果这不是一个好问题,我深表歉意,但我确实需要帮助以了解如何使用 istream。
我必须创建一个项目,它需要多个输入,可以在一行或多个上,然后将其传递给向量(这只是项目的一部分,我想尝试其余的我自己的),例如,如果我要输入这个......
>> aaa bb
>> ccccc
>> ddd fff eeeee
用“aaa”、“bb”、“ccccc”、“ddd”、“fff”、“eeee”创建一个字符串向量
输入可以是字符或字符串,当按下返回键时程序停止请求输入。
我知道 getline() 获取一行输入,我可能会使用一个 while 循环来尝试获取输入,例如...(如果我错了,请纠正我)
while(!string.empty())
getline(cin, string);
但是,我并不真正了解 istream,而且我的类没有遍历指针也无济于事,所以我不知道如何使用 istream& 或 string& 并将其传递到向量中。在项目描述中,它说不要使用 stringstream,而是使用 getline(istream&, string&) 中的功能。谁能详细解释一下如何使用 getline(istream&, string&) 制作函数,然后如何在主函数中使用它?
任何一点帮助!
【问题讨论】:
-
解决方案将取决于
aaabbcccccdddfffeeeee被允许是什么。您必须具体了解您的约束/要求。 -
实际上公平地说,如果您被禁止使用流格式的 I/O,那么无论如何您都必须自己进行解析,所以这并不重要。事实上,如果没有细节,我们无法真正回答这个问题。
-
不太确定您是在问如何解析数据或如何使用getline 或如何制作自己的getline(采用
istream&, string&的函数已经存在!) -
@LightnessRacesinOrbit "如果你被禁止使用流格式的 I/O" 我在 q 中找不到那部分?
-
你怎么知道用户已经完成了输入?是否有固定数量的要读取的字符串?还是一些结束输入的魔法值?
标签: c++