如何处理包含空格的 cin 的用户输入?
How does one process a user input with cin that contains whitespace?
我刚刚开始学习C++,在我的程序中遇到了一个小错误:
#include <iostream>
using namespace std;
int main() {
string name;
int number;
cout << "Hello!n";
cout << "Please enter your name: " << flush;
cin >> name;
cout << "Please enter a whole number: " << flush;
cin >> number;
cout << "Thank you for your cooperation, " + name + ". We will be contacting you again soon in regards to your order of " << number << " puppies.n";
}
当第一次要求用户输入时尝试输入多个单词(例如,No One
(时,程序将输出以下内容:
请输入一个整数:感谢您的合作,没有。我们将很快就您的 0 只小狗订单再次与您联系。
我在其他地方读到cin
对所有空格的处理方式相同(因此空格的处理方式与返回相同(,我如何避免这个问题?
尝试使用 getline http://www.cplusplus.com/reference/string/string/getline/这有什么帮助吗?
#include <iostream>
#include <string>
int main() {
std::string name;
int number;
std::cout << "Hello!n";
std::cout << "Please enter your name: " << std::flush;
getline(std::cin, name);
std::cout << "Please enter a whole number: " << std::flush;
std::cin >> number;
std::cout << "Thank you for your cooperation, " + name + ". We will be contacting
you again soon in regards to your order of " << number << " puppies.n";
return 0;
}
相关文章:
- 如果用户不小心给出了不正确的数据类型,cin 如何工作?
- 为什么 std::cin 不提示用户输入?
- :CIN 不断打印用户在每次循环后输入的内容
- 如何处理包含空格的 cin 的用户输入?
- 使用 cin 验证用户输入
- 使用 (cin) 用户输入将其粘贴到 std::system 中,并在另一个终端中运行带有输入的命令
- 如何在C++中使用合成时使用"cin"进行用户输入
- cin 对象如何根据用户需要将字符转换为不同类型的字符?
- 如果用户输入的输入大于 char 数组,则 cin.getline 会跳过输入提醒
- 从 R 控制台获取用户输入:Rcpp 和 std::cin
- 如何验证用户将字符串输入到std :: cin中
- std::cin 无法将命令行中的用户输入传递给具有 char 类型的变量吗?
- 如何阻止 cin.getline() 导致控制台在找不到分隔符时重复获取用户输入?
- C++:获取用户通过cin输入的数据类型
- 将GoogleTest与通过STD :: CIN从用户输入的函数一起使用
- 如果用户到达其他内容,则返回到"cin"开头 (C++)
- 我在使用 cin.getline() 从用户那里获取 3 个字符串并使用指针数组来存储它们时遇到问题
- C++ cin 与文件而不是用户输入
- C++ cin 无论用户输入什么,都返回 0 作为整数
- 通过用户获取 cin 来命名输出文件