c++ - 使空间与 C++ 输入流完美配合

标签 c++ string inputstream standard-library

首先考虑这个示例 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;

如果我在输入 1 中输入类似“Good day neighbors”的内容,则 input1 设置为“Good”,input2 设置为“day”,输入 3 设置为“neighbors”。我什至没有机会为 input2 和 input3 设置值。

所以我的问题是:如何将包含空格的文本字符串输入到单个字符串中,而不会将其(由于缺乏更好的术语)分解并溢出到对输入流的后续调用中?

提前感谢收到的所有答复。

最佳答案

你可以使用std::getline:

std::getline(std::cin, input1);
...
std::getline(std::cin, input2);
...
std::getline(std::cin, input3);

关于c++ - 使空间与 C++ 输入流完美配合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4027428/

相关文章:

java - 检查 FileInputStream 是否关闭的最佳方法是什么?

c++ - 在 C++ 函数环境中删除输入 R 对象

c++ - 如何正确地进行动态内存分配(C++)

string - 如何将配置文件(行)转换为 Ansible 中的字典列表

java - 如何判断InputStream中是否包含JSON数据?

asp.net - 帮助从 HttpContext.InputStream 读取 JSON

c++ - 更改接口(interface)类中私有(private)成员变量的指针类型二进制兼容吗?

c++ - 使用 chrome 嵌入式框架 (CEF) 时如何处理事件消息?

c++ - 如何从 C++ 中的推文中删除表情符号?

javascript - 使用正则表达式和 javascript 获取字符串中的精确匹配