帮看看这个

zzhouxiaoyu 2009-01-02 08:57:14
这两天看课件、看书都快疯了,由于没基础,不懂为什么,看看下面的程序
#include<iostream.h>
inline IsNumber(char ch){
return ch>='0'&&ch<='9'?1:0;
}
void main(){
char ch;
while(cin.get(ch),ch!='\n') {
if(IsNumber(ch))cout<<"是数字字符"<<endl;
else cout<<"不是数字字符"<<endl;
}
}
为什么定义的函数IsNumber(char ch)前面可以不写返回值类型(或者函数类型),
还有cin.get(ch)(这个还不曾学,不过见过好几次了),帮忙说说为什么输入的一串字符为什么会被逐个判断?
...全文
81 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzhouxiaoyu 2009-01-02
  • 打赏
  • 举报
回复
非常感谢,各位讲解,明白了
xiaoyisnail 2009-01-02
  • 打赏
  • 举报
回复
1.老的c规则:没有返回值是默认为int
2.cin.get(ch),ch!='\n'为逗号表达式,表达式的值为最后一个子表达式,即ch!='\n',while判断的就是这个
jixingzhong 2009-01-02
  • 打赏
  • 举报
回复
默认返回类型为 int

但是这个规则在新的标准中已经被废弃了,
所以,还是养成习惯明确返回类型吧
qujunde 2009-01-02
  • 打赏
  • 举报
回复
应该是 没有会省缺为 INT 型都是默认的 可以不写
循环判断是因为你有一个循环while(cin.get(ch),ch!='\n')
cin.get(ch) 这就是获取一个字符
ch!='\n' 判断不为换行继续
xuruichen 2009-01-02
  • 打赏
  • 举报
回复
inline IsNumber(char ch){
return ch>='0'&&ch <='9'?1:0;
}


没有返回值啊 bool就可以了
huxiangking 2009-01-02
  • 打赏
  • 举报
回复
cin.get()是c++中输入一个字符,跟c中getchar()差不多吧
那个函数为啥没返回类型 也不清楚 ,试过 加上bool也不会错 这个是特例?! 等大侠指教吧
frcsun 2009-01-02
  • 打赏
  • 举报
回复
给验证了一下
VC6.0编译通过运行成功
Visual C++ 2008编译出错:

1>------ 已启动生成: 项目: 0102, 配置: Debug Win32 ------
1>正在编译...
1>0102.cpp
1>f:\编程\vs2008\0102\0102\0102.cpp(4) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>生成日志保存在“file://f:\编程\VS2008\0102\0102\Debug\BuildLog.htm”
1>0102 - 1 个错误,0 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========


添加内联函数返回值类型bool或int编译通过运行成功。

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧