这看起来很奇怪:
int main(int argc, char* argv[]) {
cout << "function main() .." << '\n';
char ch = 0;
double number_value=1.1;
cin >> ch;
cin.putback(ch);
cin >> number_value;
cout << "1 .. " << " " << cin.good() << " " << number_value << '\n';
cin >> number_value;
cout << "2 .. " << " " << cin.good() << " " << number_value << '\n';
return 0;
}
如果我输入以下内容:
7a 1
我得到以下信息:
函数主要()..
7a 1
1 .. 1 7
2 .. 0 0
我理解:
1 .. 1 7
但为什么变量 number_value 是 0。
cin.good()
显示失败,因此不会读取任何内容,之前赋值的 number_value 中的值将保留。我期望值为 7。
最佳答案
这也是我所期望的。使用我手边的编译器,输出如下所示:
function main() ..
7a
1 .. 1 7
2 .. 0 7
您可能在编译器的标准库中发现了一个错误。
关于C++ 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2452106/