c – 如何避免int变量的char输入?

前端之家收集整理的这篇文章主要介绍了c – 如何避免int变量的char输入?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
下面的程序显示输入的“int”值并同时输出.但是,当我输入一个字符时,它进入一个无限循环,显示输入的前一个’int’值.如何避免输入字符?
  1. #include<iostream>
  2. using namespace std;
  3.  
  4. int main(){
  5. int n;
  6.  
  7. while(n!=0){
  8. cin>>n;
  9. cout<<n<<endl;
  10. }
  11. return 0;
  12. }

解决方法

无限循环的原因:

cin进入失败状态,这使得它忽略对它的进一步调用,直到错误标志和缓冲区被重置.

  1. cin.clear();
  2. cin.ignore(100,'\n'); //100 --> asks cin to discard 100 characters from the input stream.

检查输入是否为数字:

在你的代码中,即使非int类型也会被转换为int.无法检查输入是否为数字,无需将输入输入到char数组中,并且在每个数字上调用isdigit()函数.

函数isdigit()可用于区分数字和字母.此功能存在于< cctype>中.头.

is_int()函数看起来像这样.

  1. for(int i=0; char[i]!='\0';i++){
  2. if(!isdigit(str[i]))
  3. return false;
  4. }
  5. return true;

猜你在找的C&C++相关文章