我想出了如何使用cin.ignore()忽略直到第一个空格。例子是
cout << "Enter your name: ";
cin.ignore(256, ' ');
如果你输入约翰史密斯,它只会读史密斯。但是,让我们说有人想做第一,中间和姓氏?像John Doe Smith一样?有没有办法忽略直到第二个空格?
编辑:为了澄清,我需要在单独的变量中使用名称的每个部分,而不是整行。
答案 0 :(得分:2)
无需使用ignore
。 cin
默认停止在空白处读取。
using namespace std;
string firstName = "";
string middleName = "";
string lastName = "";
cin >> firstName;
cin >> middleName;
cin >> lastName;
如上所述,不忽视输入会更安全。请改用std::getline()
。