これは奇妙に思えます:
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の値を期待しています。