改成如下形式就可以了,由于cin是依据变量类型来决定接收数据类型的,因为你输入的是字符,接收的变量b的类型为整型,因此两者之间不匹配。如果你一定需要这么做的话可以使用scanf指定输入的数据类型来完成整型接收字符型输入的需要。int main(){ int a, b = 0; double c; scanf("%d %c %...
1.输入一个字母或者字符 #include<iostream>usingnamespacestd;intmain(){inta;cin>>a;cout<<a<<endl;} 1.png 2.接收一个字符串,遇“空格”、“TAB”、“回车”就结束 #include<iostream>usingnamespacestd;intmain(){chara[5];cin>>a;cout<<a<<endl;} 2.png cin.getline() 1.cin.getline(接收字...
cin.clear(); /* 错误位重置 */ cin.sync(); /* 清空缓存区 */ cout<<"输入一个数字:";cin>>x; }while(!cin.good());
int x=30, y=300, z=1024; cout<<x<<' '<<y<<' '<<z<<endl; //按十进制输出 cout.setf(ios::showbase | ios::uppercase); //设置基指示符输出和数值中的字母大写输出 cout<<x<<' '<<y<<' '<<z<<endl; cout.unsetf(ios::showbase | ios::uppercase); //取消基指示符输出和数值中...
//如果我输入a 此时由于a是int型,但我们输入了一个char所以cin的输入会失败 false rdstate()函数的返回值: 2 三个标记位返回的返回值: 100 goodbit标记位的返回值: 0 a:0 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
如果cin 在读取过程中发生了错误,cin>>n这样的表达式也会返回 false。例如下面的程序: #include<iostream> usingnamespace std; intmain() { int n; while(cin>> n) cout<< n<< endl; return0; } 程序本该输入整数,如果输入了一个字母,则程序就会结束。因为,应该读入整数时却读入了字母也算读入出错。
今天在写代码的时候遇到一个bug,也是在无意中发现的,当我乱输入的时候(乱敲键盘那种),程序会出现死循环。 简版: int a = 0; while(true) { cout <<"请输入数字"<< endl; cin>>a; } 1. 2. 3. 4. 5. 6. 看似一段简单的代码,当胡乱输入的时候就会导致程序死循环,无限打印“请输入数字”。
cout<<"Please input an int number:\n"; endl 最后一个字符是字母“l”,而非阿拉伯数字“1”,它是“end of line”的缩写。 第7 行代码表示从标准输入(键盘)中读入一个 int 型的数据并存入到变量 x 中。如果此时用户输入的不是 int 型数据,则会被强制转化为 int 型数据。
int a; cout<<"输入一个字母:"<<endl; cin>>a; //int型变量中放了char型数据,failbit置1 cout<<"cin.fail()="<<cin.fail()<<endl; //输出1 cout<<"输入一个数字:"<<endl; //由于failbit值为1,输入流不能正常工作 cin>>a; //故此处的输入无效 cout<<a<<endl; //输出不确定值 cin.clear...
当用户输入错误类型的数据时(例如期望输入整数却输入了字母),cin会进入错误状态并产生一个错误标志。为了判断是否存在错误并处理错误情况,我们可以组合使用cin和if语句。 例如,我们希望获取用户输入的年龄并做一些限制: ``` int age; cout << "请输入您的年龄:"; ...