为什么 std::cin 不提示用户输入?
Why std::cin doesn't prompt for user entry?
我试图更好地理解std::cin
行为。
让我们看看下面的代码:
#include <iostream>
int main()
{
char c, cin {'8'};
std::cin >> c; // enter '.'
std::cin.putback(c);
double d {88};
std::cin >> d; // expected to fail.
if (std::cin)
std::cout << "double d = " << d << 'n';
else
{
std::cin >> cin; // doesn't prompt user for entry neither put c into cin.
std::cout << "cin = " << cin << 'n';
}
std::cout << "d = " << d << 'n'; // just to check.
}
我想知道如何解释std::cin >> cin;
不提示用户输入的事实,也没有将先前放回std::cin
流中的c
值归因于变量cin
。
注意:
- 众所周知,
std:: cin >>
会跳过空格(空格、换行符、制表符等(
尝试添加这个
else
{
std::cin.clear(); // new
std::cin >> cin;
std::cout << "cin = " << cin << 'n';
}
由于您之前的输入失败std::cin
处于错误状态,并且在您清除错误状态之前,所有操作都将失败。
相关文章:
- C++如何通过用户输入删除列表元素
- 如何使用用户输入在C++中正确填充2D数组
- C++MySQL C api用户输入行
- 如何只允许用户输入正整数
- C++如何计算用户输入的数字中的偶数位数
- 通过for循环使用用户输入填充列表
- 在C++中,我如何接受不同于同一行的用户输入
- 如果用户输入无效,如何使用字符串变量-C++重复输入命令
- 显示基于用户输入的整数的字符
- 根据用户输入用字母填充矢量,并将"开始"和"结束"放在四肢
- 我试图制作一个程序,要求用户输入问题和答案,但程序循环不正确
- 打印时有二叉树问题.用户输入不打印任何内容
- C ++奇怪的数组由用户输入
- 如何允许大写和小写用户输入?
- C++读取用户输入而不按回车键(Mac OS X),与Turbo Pascal中的读取键相同
- 如何存储用户输入的所有数据,然后在他们想要查看所有数据时显示它们
- 如何使用用户输入变量制作二维数组?
- 用户输入字符串的文件附加问题..C++
- 遇到此问题时遇到困难:允许用户输入数组的值并使用 for,而循环也输出输入的最大数字
- 如何使用递归循环我的代码(当用户输入无效输入时,它会再次提示他们)?