首页 > 解决方案 > 当输入类型不正确时,C++ 第二个 cin 被吃掉了

问题描述

我想问一个奇怪的问题。

double Test1, Test2;

cout << "Please Input the First Number: ";
cin >> Test1;

cout << "\nPlease Input the Second Number: ";
cin >> Test2;

cout << "\nHere is the Answer: " << endl;
cout << Test1 << Test2 << endl;

如果我的输入Test1是一个字符(例如'A'),第二个输入将被吃掉。

我试过使用cin.ignore(numeric_limits<streamsize>::max())cin.ignore(numeric_limits<streamsize>::max(), '\n')但似乎没有任何效果。

为什么会出现这个问题?

标签: c++cin

解决方案


>>一旦检测到无效字符,输入就会终止。该无效字符不会从流中删除,因此当您执行第二个时它仍然存在>>


推荐阅读