c++ - 在 cin 之后使用 getline(cin, s)

标签 c++ getline cin

我需要以下程序来获取整行用户输入并将其放入字符串名称中:

cout << "Enter the number: ";
int number;
cin >> number;

cout << "Enter names: ";
string names;

getline(cin, names);

getline() 命令之前使用 cin >> number 命令(我猜这是问题所在),它不允许我输入名字。为什么?

我听说过关于 cin.clear() 命令的一些信息,但我不知道它是如何工作的,也不知道为什么它是必要的。

最佳答案

cout << "Enter the number: ";
int number;
cin >> number;

cin.ignore(256, '\n'); // remaining input characters up to the next newline character
                       // are ignored

cout << "Enter names: ";
string names;
getline(cin, names);

关于c++ - 在 cin 之后使用 getline(cin, s),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5739937/

相关文章:

c++ - 用包装器库替换库的使用

c++ - 将预先分配的 vector <complex<double>>重新用作两倍长度的 vector <double>

c++ - getline(cin,_string);

c++ - 强大的数字用户输入功能,但零不被视为数字

c++ - 来自命名管道的ifstream-检查是否无阻塞,是否有数据

c++ - 从控制台读取一行

VC++ 和 g++/Xcode 之间的 C++ 模板函数差异

java - Android NDK 库仅在运行时不加载三星 galaxy 4.0.2 手机

c++ - 使用 getline() 从文件中读取多行

c++ - 多次从第一行读取文本文件(C++)