C ++ cin вопросы - PullRequest
       25

C ++ cin вопросы

4 голосов
/ 16 марта 2010

Это кажется странным:

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.

1 Ответ

2 голосов
/ 16 марта 2010

Я тоже так ожидал. С компиляторами, которые у меня есть, выходные данные выглядят так:

function main() ..
7a
1 ..  1 7
2 ..  0 7

Возможно, вы обнаружили ошибку в стандартной библиотеке вашего компилятора.

...