这通常是因为在使用cin读取时,输入流可能含有不希望的字符,导致输入失败。这些字符不会被存储在目标变量中,因此目标变量的值会保持不变(即为其默认值0)。解决此问题的一种常见方法是在读取输入后清空输入流。代码示例如下:
int x;
cout << "请输入一个整数:";
cin >> x;
if (cin.fail()) { // 输入失败
cin.clear(); // 清空输入流
cin.ignore(1000, '\n'); // 忽略输入流中的其他字符
cout << "无效输入,请重新输入一个整数:";
cin >> x;
}
cout << "输入的整数是:" << x << endl;