STD :: Stringstream一次仅支持一个输入
std::stringstream only supports one input at a time?
因为 std::stringstream
是stzream,根据文档,您可以执行流支持的任何操作。
所以我希望以下样本可以正常工作,但似乎效果不佳。我正在使用MINGW与GCC 4.8.3。
变体A:
std::string s;
std::stringstream doc;
doc << "Test " << "String ";
doc << "AnotherString";
doc >> s;
std::cout << s << std::endl;
变体B:
std::string s;
std::stringstream doc;
doc << "Test ";
doc << "AnotherString";
doc >> s;
std::cout << s << std::endl;
输出仅是
Test
我期望它会串联单个字符串,直到我从流回到那里的流中读取。
。那么,串联弦的适当方法是什么?我真的必须单独读取每个人并手动串联它们,这在C 中对我来说似乎很尴尬。
它将每个字符串都放入 doc
,以便其内容为:
Test String AnotherString
然后,当您使用doc >> s
提取时,它仅读取到第一个空格。如果要将整个流以字符串的形式获取,则可以调用str
:
std::cout << doc.str() << std::endl;
它只会读取一个单词,直到使用 stream >> s
直到白空间。此外, @josephmansfield的使用str()
的答案,或者您可以使用getline()
(如果字符串不包含新行,则可以完美工作):
getline(doc, s);
相关文章:
- 有没有办法在使用 GLFW 按下按键后只处理一个输入事件?
- 为什么在我的程序中输入另一个输入会给我不同的结果
- 当被一个输入分开时,有两个控制台输出同时显示
- 为什么此代码从标准输入中少一个输入?
- GoogleMock:如何根据另一个输入参数设置ArgReferee?
- 我的代码仅适用于一个输入.请指教
- 获取一个输入字符串,将其转换为其十六进制值,然后将其十六进制存储为 int
- "cin.get"停止了另一个输入函数,如"cin"..C++
- 使用getline()将字符串输入到程序中会导致下一个输入出现某种溢出
- 当我使用 cin 进行两个输入时,如何接受一个输入
- 如何从文件中一次读取一个输入,类似于在c++中使用cin/scanf从控制台读取输入
- 检查两个字符串是否相等,一个输入与另一个来自文件的输入相等
- STD :: Stringstream一次仅支持一个输入
- 如何在另一个输入语句中使用变量
- 一个输入多个输出文件C
- C 仅允许一个输入
- 整数输入 拒绝非整数输入并在C++中请求另一个输入
- 正在擦除文件中的最后一个输入
- 有没有一种方法可以测试一个输入是否是C++中的数字
- 你能定制一个输入的换行符(C++)吗