Getline 总是忽略输入 C++ 的第一个字
Getline always ignoring first word of input c++
我在使用这段代码时遇到问题。我希望它包含 2 个单词,但它总是忽略第一个单词然后使用第二个单词。如果我输入 3 个词,它会完美地工作并拾取最后的 2 个词。
对此的提示是这些要点。
- 提示用户输入his/her名字和姓氏。
- 使用 getline 方法从键盘读取名称并将其存储到名为 fullName 的变量中(您需要声明您使用的任何变量)。
- 打印全名。
- 编译、调试和运行,使用您的名字作为测试数据。
- 由于我们正在添加到同一个程序,每次我们 运行 程序我们将在当前任务的输出之前获得先前任务的输出。
如何使这项工作正常进行?
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
我在使用这段代码时遇到问题。我希望它包含 2 个单词,但它总是忽略第一个单词然后使用第二个单词。如果我输入 3 个词,它会完美地工作并拾取最后的 2 个词。 对此的提示是这些要点。
- 提示用户输入his/her名字和姓氏。
- 使用 getline 方法从键盘读取名称并将其存储到名为 fullName 的变量中(您需要声明您使用的任何变量)。
- 打印全名。
- 编译、调试和运行,使用您的名字作为测试数据。
- 由于我们正在添加到同一个程序,每次我们 运行 程序我们将在当前任务的输出之前获得先前任务的输出。
如何使这项工作正常进行?
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