使用 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?
编辑:为澄清起见,我需要名称的每一部分都在一个单独的变量中,而不是整行。
不需要使用ignore
。 cin
默认停止读取空白。
using namespace std;
string firstName = "";
string middleName = "";
string lastName = "";
cin >> firstName;
cin >> middleName;
cin >> lastName;
并且如上所述,不忽略输入会更安全。请改用 std::getline()
。
我想出了如何使用 cin.ignore() 忽略直到第一个 space。例如
cout << "Enter your name: ";
cin.ignore(256, ' ');
如果您输入 John Smith,它只会显示为 Smith。但是假设有人想做名字、中间名和姓氏?像约翰·多·史密斯?有没有办法忽略直到第二个白space?
编辑:为澄清起见,我需要名称的每一部分都在一个单独的变量中,而不是整行。
不需要使用ignore
。 cin
默认停止读取空白。
using namespace std;
string firstName = "";
string middleName = "";
string lastName = "";
cin >> firstName;
cin >> middleName;
cin >> lastName;
并且如上所述,不忽略输入会更安全。请改用 std::getline()
。