如果使用cin.get( )输入了空行之后,必须使用cin.clear( )重置输入。
例如:
#include <iostream>
using namespace std ;
int main()
{
char name[20] ;
cin.get(name, 20).get() ;
int j = 0 ;
cin >> j ;
cout << j << endl ;
}
运行结果:
0
当在一开始输入空行之后,后面对于变量j就没有了输入机会
当get( )读取空行之后将设置失效位,这意味着接下来的输入将会被阻断,但可以用下面的命令来恢复输入:
cin.clear( )
改变一下程序:
#include <iostream>
using namespace std ;
int main()
{
char name[20] ;
cin.get(name, 20).get() ;
cin.clear() ;
int j = 0 ;
cin >> j ;
cout << j << endl ;
}
运行结果:
4
4
如果在编程中遇到可能会出现用户输入空行的情况,就要想到重值输入的cin.clear( )这个语句,以防后面的输入都没法做了。