如何强制getline()一次输入一行

时间:2019-01-18 00:24:45

标签: c++ string input getline

我需要输入一定数量的字符串,每个字符串都换行。当我尝试在循环中使用getline()时,它将输入第一个字符串,然后立即结束。

这是我要解决的问题,您可以在其中看到我要输入的样式: https://wcipeg.com/problem/ccc98s1

我查看了cin.ignore()来解决此问题,但似乎无法正常工作。

int n;
cin >> n;

for(int i = 0; i < n; i++) {
    string input;
    getline(cin, input);
    cout << "Line Entered: " << input << endl;
}

如果您为n输入2,然后尝试在单独的行中输入两个字符串,那么它将不起作用。

1 个答案:

答案 0 :(得分:0)

int n;
cin >> n;
cin.ignore(); // are you sure you tried this?

for(int i = 0; i < n; i++) {
    string input;
    getline(cin, input);
    cout << "Line Entered: " << input << endl;
}