猿问

输入n为数字时,不是应该执行if的语句输出Yes吗,可是为什么运行时会输出No,是其他地方有问题吗?

我记得isdigit()的用法是如果参数为数字,则返回ture。但是使用过程中还是有些弄不明白的地方,比如说下面的程序:
#include<iostream>
#include<string>
#include<cctype>
using namespace std;
int main()
{
int n;
cin>>n;
if(isdigit(n))
cout<<"Yes";
else
cout<<"No"; 
return 0;
}

凤凰求蛊
浏览 118回答 3
3回答

湖上湖

isdigit()里的参数是指ASCII码数字所代表的字符,你查一下ASCII字符表,如:97表示A字符。/* 找出str字符串中为阿拉伯数字的字符*/#include<ctype.h>main(){char str[]="123@#FDsP[e?";int i;for(i=0;str[i]!=0;i++)if(isdigit(str[i])) printf("%c is an digit character\n",str[i]);}参考一下这段代码。

桃花长相依

#include<iostream>#include<string>#include<cctype>using&nbsp;namespace&nbsp;std;int&nbsp;main(){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;c;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin>>c;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(isdigit(c))//判断单个字符是否为数字,不是int型的整数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout<<"Yes";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout<<"No";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;}

陪伴而非守候

isdigit判断输入是否在'\0'到'\9‘之间,你如果输个字母a,那明显不是digit
随时随地看视频慕课网APP
我要回答