为什么运行结果是1? 上面代码isdigit()不是应该返回1吗?

#include <iostream>

#include <string>

#include <cctype>

using namespace std;

int main(){

int i=5;
if(!isdigit(i))
{
cout<<!isdigit(i)<<endl;
}

cin.get();

return 0;
}

浮云间
浏览 284回答 2
2回答

摇曳的蔷薇

返回结果必须是这样吗?那是返回bool型变量的函数!

RISEBY

int isdigit(char c);注意这里的参数是char,而不是int其实char类型就是对应的ASCII码的,所以这里相当于是调用isdigit(5),对应ascii码,5不是数字,所以这里是假.应该这样:isdigit('5'),就是真了 .嗯......这个我不太清楚你的环境,所以不好说.这个函数仅是知道,如果是0-9之间的数字,返回的是非0,其他返回0.而且不同编译器实现的方式还不同,通常这个不是个函数,而是一个宏,所以在用的时候返回什么还是不一定的。
打开App,查看更多内容
随时随地看视频慕课网APP