c++ cin.clear()到底是什么意思呢

2024年11月14日 13:07
有4个网友回答
网友(1):

当cin函数输入错误的时候,cin里面有个函数可以自动检测到输入错误,若想继续输入便要清楚掉这个错误。可以利用函数cin.rdstate()函数来读取错误的标识符看看。

#include using namespace std;int main(){

int number;

cin>>number;

cout<<"first input"<

cout<

cin>>number;

cout<<"end input!"<

system("pause");

return 0;}

扩展资料

c++中的cin函数语法

C++中的cin函数和C语言的scanf函数同理,均为从键盘中接收输入内容。

基本格式:cin>>要输入的内容;

cin函数输入遇到空格,TAB键,回车也会终止输入

例如:想要输入zhang san

cin>>str;那么str只会接收zhang这个字符串,遇到空格自动结束输入。

C++中提供cin.getline(str,50),此时只遇到回车才会结束输入,那么str中存储了zhang san这个完整的字符串。

网友(2):

实际测试了一下楼上大神的解答思路发现一些问题:
输入字母开头时 例如a123 b456 代码会报错“Bad input”
但当数字开头连接字母时 例如123a 4bc 代码正常运行 不会报错

大家可以试试

网友(3):

if(!cin)判断是否输入正确,如果输入错误的类型 比如你想输入 int类型 结果输入了char 则会出现cin输入错误
fail() 被设定为真 failbit被设定 cin被标记错误 不可用( 意思是 出现不匹配 )然后就得用clear()清除错误状态 就是清除错误状态 (也就是把failbit设置为0)然后还得用 while(cin.get()!='\n')
continue;
吸收缓冲区 也就是错误字符后面的字符之类的 知道换行符 例如想输入 123 结果输入123ab456。。。就用上面的做法 解决了 发现cin又可用了。。。

网友(4):

非常感谢,在读C++ Primer也碰到此问题