C 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  

我得到以下内容:

功能main()..

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

您可能在编译器的标准库中发现了一个错误.

点赞