为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C++
浮云间 2023-03-17 19:15:35
#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;}
查看完整描述

2 回答

?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

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

查看完整回答
反对 回复 2023-03-21
?
RISEBY

TA贡献1856条经验 获得超5个赞

int isdigit(char c);
注意这里的参数是char,而不是int
其实char类型就是对应的ASCII码的,所以这里相当于是调用isdigit(5),对应ascii码,5不是数字,所以这里是假.应该这样:isdigit('5'),就是真了 .

嗯......这个我不太清楚你的环境,所以不好说.这个函数仅是知道,如果是0-9之间的数字,返回的是非0,其他返回0.而且不同编译器实现的方式还不同,通常这个不是个函数,而是一个宏,所以在用的时候返回什么还是不一定的。

查看完整回答
反对 回复 2023-03-21
  • 2 回答
  • 0 关注
  • 268 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信