使用cin.ignore()跳过两个空间



我想出了如何使用cin.ignore()忽略到第一个空间。示例将是

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

如果您输入约翰·史密斯(John Smith),它只会读史密斯(Smith)。但是可以说有人想先做,中间和姓氏?像约翰·杜·史密斯(John Doe Smith)一样?有没有办法忽略直到第二个空格?

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

无需使用ignorecin默认情况下在Whitespace停止阅读。

using namespace std;
string firstName = "";
string middleName = "";
string lastName = "";
cin >> firstName;
cin >> middleName;
cin >> lastName;

,如上所述,不要忽略输入要安全得多。改用std::getline()

最新更新