【发布时间】:2011-04-30 22:58:11
【问题描述】:
首先考虑这个示例 C++ 代码:
std::string input1, input2, input3;
std::cout << "Enter Input 1: ";
std::cin >> input1;
std::cout << std::endl << "Enter Input 2: ";
std::cin >> input2;
std::cout << std::endl << "Enter Input 3: ";
std::cin >> input3;
如果我为 input1 输入“Good day neighbors”之类的内容,则 input1 设置为“Good”,input2 设置为“day”,输入 3 设置为“neighbors”。我什至没有机会为 input2 和 input3 设置值。
所以我的问题是:我如何将包含空格的文本字符串输入到单个字符串中,而不会使它(由于缺乏更好的术语)分解并溢出到对输入流的后续调用?
提前感谢收到的所有答案。
【问题讨论】:
-
fgets。是骗子很快就会得到链接..
-
这些都不是重复的。 brumScouse,您的问题涉及固定大小的 C 样式字符串以及 scanf 的替代方法。我正在使用 C++ 标准库字符串。答案对我没有帮助。杰里,你的问题是由已经知道 getline() 存在而我不知道的人提出的。感谢您提供相同的链接。
-
s.: 它是第二个的副本。您只是不知道您需要基于线路的解决方案。
标签: c++ string inputstream standard-library