C++ getline(cin,str)给了我额外的一句话

gminus 发布于 2019-03-09 c++ 最后更新 2019-03-09 14:40 2 浏览

我是c ++中的新手。我在窗口7中使用Cygwin和eclipse,我试图编写一个程序来让用户输入一个字符串并将其打印出来。我有下面的代码。

#include <iostream>
#include <string>
using namespace std;
int main() {
    string mystr;
    cout << "What's your name? ";
    getline (cin, mystr, '\n');
    cout << "Hello " << mystr << ".\n";
    return 0;
}
我也尝试:
getline(cin, mystr);
他们都给了我一个如下所示。 输出:
What's your name? nick
Hello nick
.
为什么完全停下来到下一行? 有人可以告诉我会发生什么,并教我如何解决它。
已邀请:

sest

赞同来自:

在gcc 4.6.3中

getline (cin, mystr);
getline (cin, mystr, '\n');
两者都按照您的预期打印字符串。