社区
C语言
帖子详情
初学者的请教 c=getchar(),c为什么定义为int类型
chu0duhan
2012-02-09 10:54:26
这是我第一在这里发帖,希望能够得到各位大牛们的帮助。
我现在在看C Programming language教材,对以下程序有一些不理解。书上表示c必须要足够大,除了能存储任何字符还要能存储EOF,所以要申明为INT型.为什么啊?EOF是一个怎么样特殊的值?
#include <stdio.h>
main()
{
int c;
c=getchar();
while((c=getchar())!=EOF)
putchar(c);
}
...全文
1828
14
打赏
收藏
初学者的请教 c=getchar(),c为什么定义为int类型
这是我第一在这里发帖,希望能够得到各位大牛们的帮助。 我现在在看C Programming language教材,对以下程序有一些不理解。书上表示c必须要足够大,除了能存储任何字符还要能存储EOF,所以要申明为INT型.为什么啊?EOF是一个怎么样特殊的值? #include main() { int c; c=getchar(); while((c=getchar())!=EOF) putchar(c); }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
I_Can_Play
2012-02-12
打赏
举报
回复
[Quote=引用 1 楼 mstlq 的回复:]
在计算机术语缩写通常为 EOF(End Of File),在操作系统决定资料源无更多的资料可读取。资料源通常称为档案或串流。
在 C语言,或更精确地说成 C标准函式库中表示:文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值……
[/Quote]
正解
自信男孩
2012-02-10
打赏
举报
回复
EOF是文件结束符,这个宏在系统同文件中有定义的。可以按ctrl + d(linux)输入此符号。
Binzo
2012-02-10
打赏
举报
回复
也可以是char。
ascii码。
一个'x'(char)对应一个int数。
赵4老师
2012-02-10
打赏
举报
回复
为了区别'\xff'和EOF即-1
wizard_tiger
2012-02-10
打赏
举报
回复
返回字符的ASCII值,也可以定义成char型变量。
lily0628
2012-02-10
打赏
举报
回复
定义为int
表示getchar()函数的返回值为int型的
getchar()返回用户输入的第一个字符的ASCII码(为int型),出错则返回-1
sxtobj
2012-02-10
打赏
举报
回复
2
getchar()函数原型是int getchar( void )。
getchar()函数用于读取字符,但它返回的是一个int型值,而不是char型值。
尽管表示字符的代码本身是不是int型值,但返回int型值的原因是为了允许函数报告文件的末尾(EOF)。如果返回值是char型,那么在256个字符中必须有一个被指定用于表示EOF。如果这个字符出现在文件内部,那么这个字符之后的内容将不会被读取,因为它被解释为EOF标志了。
让函数返回一个int型值就能解决这个问题。EOF被定义为一个int型值,它的值在任何可能出现的字符范围之外。这种解决方法允许我们使用该函数来读取二进制文件。在二进制文件中,所有的字符都有可能出现,文本文件也是如此。
请高手指正!
小班得瑞
2012-02-10
打赏
举报
回复
2楼正解,你可以百度EOF的
justkk
2012-02-10
打赏
举报
回复
[Quote=引用 1 楼 mstlq 的回复:]
在 C语言,或更精确地说成 C标准函式库中表示:文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的……
[/Quote]
必须是文本文件吗?
可执行程序也用EOF作为文件结束标志吧
pengzhixi
2012-02-10
打赏
举报
回复
就为了能够保存EOF这个返回值所以用了int
ccjsj1
2012-02-10
打赏
举报
回复
[Quote=引用 11 楼 zhao4zhong1 的回复:]
为了区别'\xff'和EOF即-1
[/Quote]
int getchar(void);
ProgrammingRing
2012-02-09
打赏
举报
回复
char -128~127怕溢出。。
jicongyue123
2012-02-09
打赏
举报
回复
#define EOF (-1)
mstlq
2012-02-09
打赏
举报
回复
在计算机术语缩写通常为 EOF(End Of File),在操作系统决定资料源无更多的资料可读取。资料源通常称为档案或串流。
在 C语言,或更精确地说成 C标准函式库中表示:文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~255,不可能出现-1,因此可以用EOF作为文件结束标志。
local在c语言中的作用,local用法
比如_,a="a","b"就和a="b"一样
请教
MK文件语法LOCAL_CFLAGS的用法在网上看了关于LOCAL_CFLAGS的介绍,说是可选的编译器选项,用法之一是LOCAL_CFLAGS-D,增加全局宏
定义
。 LOCAL_CFLAGS := -DUSE_JSC相...
【C】2、C语言介绍
汇总并简单介绍一些C语言的知识
1. C语言项目 贪吃蛇(1)
本指南将帮助您从零开始理解贪吃蛇游戏代码,无论您是C语言
初学者
还是有一定编程基础,都能通过本指南掌握这份代码的核心知识。60// 游戏区域宽度20# define WIDE 60 // 游戏区域宽度 # define HIGH 20 // 游戏区域...
_C语言_结构体_vistodio_c报错.+
初学者
的自闭瞬间。哎。
稍微仔细一点的
初学者
都会看出来这个查询方法的漏洞只是把想要查询的员工的姓名和数组进行比较。如果查询个张三但是在程序存储的时候刚好有个张四在张三的前面那么程序就只会输出张四的信息。因为这里的程
谭浩强《C程序设计》(第四版)错误不完全汇集
② C99要求,main函数的
类型
一律指定为
int
型,并在函数的末尾加一个返回语句“return 0;”。 评:long long complex,bool根本是子虚乌有的。数据
类型
都整不明白,还谈什么语言、算法呢? C99并没有要求main函数的...
C语言
70,038
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章