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

标签 c++ cin

我想出了如何使用 cin.ignore() 来忽略直到第一个空格。例子是

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

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

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

最佳答案

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

using namespace std;

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

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

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

关于c++ - 使用 cin.ignore() 跳过 2 个空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40756332/

相关文章:

c++ - 使用 boost::beast 异步处理流式 HTTP

c++ 将一个类中的对象推送到另一个类中的 vector 中?

c++ - 在进程外调用时 MiniDumpWriteDump 中的访问冲突

c++ - 为什么这个cin读取卡住了?

c++ - 如何用 C++ 计算一个简单句子中的单词和数字

c++ - 从字符串转换时如何组合多个枚举?

c++ - Linux 和 Windows 下混合 cin 和 getline

c++ - 如何正确使用 cin.peek()

c++ - 用一串命令预加载 cin

c++ - 用户输入...如何检查 ENTER 键