Getline 总是忽略输入 C++ 的第一个字

Getline always ignoring first word of input c++

我在使用这段代码时遇到问题。我希望它包含 2 个单词,但它总是忽略第一个单词然后使用第二个单词。如果我输入 3 个词,它会完美地工作并拾取最后的 2 个词。 对此的提示是这些要点。

如何使这项工作正常进行?

string fullName;
cout << "What is your full name" << endl;
    cin >> fullName;
getline(cin, fullName);
    cout << fullName << endl;
cout << endl;
cin >> fullName;

读取全名的第一个单词。

getline(cin, fullName);

阅读名字的其余部分覆盖第一个单词。计算机程序完全按照您的指示进行操作,如果这是错误的做法,则不会表现出零怜悯。

所以给出 John Jacob Jingleheimer Schmidt

cin >> fullName; // reads John into fullname
getline(cin, fullName); // reads  Jacob Jingleheimer Schmidt into fullname, 
                        // replacing John
cout << fullName << endl; // prints  Jacob Jingleheimer Schmidt

解决方案

删除 cin >> fullName;

getline(cin, fullName); // reads John Jacob Jingleheimer Schmidt into fullname, 
cout << fullName << endl; // prints John Jacob Jingleheimer Schmidt