C++ 问题

标签 c++ input cin

这看起来很奇怪:

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/

相关文章:

java - 在java中获取用户输入的正整数

c - 将串行输入读取到 C 变量

C++ 输入运算符重载 ">>"

c++ - BOOST_PREVENT_MACRO_SUBSTITUTION 应该如何工作?

java - RandomAccessFile java 格式错误的输入

c++ - 在一行上流式传输多个变量?

C++ GetLine() 问题,命令行程序

c++ - volatile POD 类型的容器

c++ - Expected<T> 的替代实现

c++ - 隐藏自动生成的赋值运算符和复制构造函数而不替换它们