繁体   English   中英

忽略第一个字符的简单 getline 和 cin

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM