Это кажется странным:
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.