加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 03:37:47 所属栏目:百科 来源:网络整理
导读:下面的程序显示输入的“int”值并同时输出.但是,当我输入一个字符时,它进入一个无限循环,显示输入的前一个’int’值.如何避免输入字符? #includeiostreamusing namespace std;int main(){int n;while(n!=0){ cinn; coutnendl; }return 0;} 解决方法 无限循
下面的程序显示输入的“int”值并同时输出.但是,当我输入一个字符时,它进入一个无限循环,显示输入的前一个’int’值.如何避免输入字符?
#include<iostream>
using namespace std;

int main(){
int n;

while(n!=0){
            cin>>n;
            cout<<n<<endl;
           }
return 0;
}

解决方法

无限循环的原因:

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

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

检查输入是否为数字:

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

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

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

for(int i=0; char[i]!='';i++){
    if(!isdigit(str[i]))
    return false;
}
return true;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读