输入被截断
Input being chopped off
本文关键字:输入 更新时间:2023-10-16
这段代码看起来很简单,对吧?
string password;
cin.ignore();
getline(cin, password);
cout << "The user inputted the password: " << password << endl;
好吧,出于某种原因,当我键入"时;秘密"作为密码,cout只产生";secret,即每次都要切掉第一个字符。为什么会这样?
cin.ignore()
忽略输入的下一个字符。这意味着CCD_ 3中的CCD_。我想这个调用是因为getline
以前的问题似乎跳过了输入(请参阅这个问题)。这仅适用于使用operator>>
并预先留下换行符的情况。我建议改为:
getline(std::cin >> std::ws, password);
这将消除剩余空白的问题,并且在没有空白的情况下不会引起问题。
您可以这样做。。
string password;
cout << "enter password:";
getline(cin, password);
cout << "The user inputted the password: " << password << endl;
或者,您可以使用cin来接收输入。现在你可以使用cin.ignore.
string password;
cout << "enter password:";
cin >> password;
cin.clear();
cin.ignore(200, 'n');
cout << "The user inputted the password: " << password << endl;
当您使用cin >>
接收输入时,最好使用cin.clear()
和cin.ignore()
。但是,如果您使用的是getline()
,则似乎没有必要使用cin.ignore()
。
相关文章:
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 2D数组来自文本输入,中间有空格
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 检查输入是否不是整数或数字
- 正在尝试了解输入验证循环
- 读取文件并输入到矢量中
- C++如何通过用户输入删除列表元素
- 用c++从输入文件中读取另一行
- 读取文件的最后一行并输入到链接列表时出错
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何使用用户输入在C++中正确填充2D数组
- C++MySQL C api用户输入行
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- 用户定义函数中的指针和输入
- 如何在C++中检查2D数组中负值的输入验证
- 如何只允许用户输入正整数
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- 输入中的字符串数未知(以字母表示)
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- 在一个模板函数中,若输入的类型是enum类,我该如何使用std::underlying_type