使用 cin.ignore() 跳过 2 个空格

Using cin.ignore() to skip over 2 spaces

我想出了如何使用 cin.ignore() 忽略直到第一个 space。例如

cout << "Enter your name: ";
cin.ignore(256, ' ');

如果您输入 John Smith,它只会显示为 Smith。但是假设有人想做名字、中间名和姓氏?像约翰·多·史密斯?有没有办法忽略直到第二个白space?

编辑:为澄清起见,我需要名称的每一部分都在一个单独的变量中,而不是整行。

不需要使用ignorecin 默认停止读取空白。

using namespace std;

string firstName = "";
string middleName = "";
string lastName = "";

cin >> firstName;
cin >> middleName;
cin >> lastName;

并且如上所述,不忽略输入会更安全。请改用 std::getline()