我想出了如何使用cin.ignore()忽略到第一个空间。示例将是
cout << "Enter your name: ";
cin.ignore(256, ' ');
如果您输入约翰·史密斯(John Smith),它只会读史密斯(Smith)。但是可以说有人想先做,中间和姓氏?像约翰·杜·史密斯(John Doe Smith)一样?有没有办法忽略直到第二个空格?
编辑:要澄清,我需要在单独的变量中,而不是整个行中的名称的每个部分。
无需使用ignore
。cin
默认情况下在Whitespace停止阅读。
using namespace std;
string firstName = "";
string middleName = "";
string lastName = "";
cin >> firstName;
cin >> middleName;
cin >> lastName;
,如上所述,不要忽略输入要安全得多。改用std::getline()
。