![](/img/trans.png)
[英]Why is cin.ignore() ignoring the first character of my getline input?
[英]Simple getline and cin ignoring the first character
我试图将这些输出分开,但第二个输出的第一个字符被忽略。
输入:
1
1 2 3
输出:
(空格)2 3
预期输出...
1 2 3
#include <iostream>
using namespace std;
int main()
{
string a; cin >> a;
string s; cin >> s;
getline(cin, s);
cout << s;
}
该程序产生所需的输出
#include <iostream>
using namespace std;
int main()
{
string a; cin >> a;
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
string s;
getline(cin, s);
cout << s;
}
对cin.ignore()
的调用移动到下一行,因为在cin >> a;
之后您仍然在上一行cin >> a;
. 你可以做一些类似string dummy; getline(cin, dummy);
事情string dummy; getline(cin, dummy);
string dummy; getline(cin, dummy);
但ignore
避免使用不必要的变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.