社区
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);
}
...全文
1697
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用法
Lua中Local的具体用法是怎样的?1.分别赋值。W=SendChatMessage,w="say" 2. _表示那个变量不要了。比如_,a="a","b"就和a="b"一样
请教
MK文件语法LOCAL_CFLAGS的用法在网上看了关于LOCAL_CFLAGS的介绍,说是可选的编译器选项,用法之一是LOCAL_CFLAGS-D,增加全局宏
定义
。 LOCAL_CFLAGS := -DUSE_JSC相...
【C】2、C语言介绍
汇总并简单介绍一些C语言的知识
_C语言_结构体_vistodio_c报错.+
初学者
的自闭瞬间。哎。
在C语言中一直用不好子函数, 前几天看书+视频教学终于弄懂了, 想着用大一上做到的课设重新打一遍 工资纳税系统(不能说是系统就是一个控制台窗口连程序都算不上哈哈哈但是当时做出来的时候真的就是蛮高兴地); 大概就是这个样子还有一些简单的功能但是这个程序中的查询功能有很多漏洞看程序: 大概就是这个样子。 稍微仔细一点的
初学者
都会看出来这个查询方法的漏洞只是把想要查询的员工的姓名和数组进行比较。如果查询个张三但是在程序存储的时候刚好有个张四在张三的前面那么程序就只会输出张四的信息。因为这里的程
谭浩强《C程序设计》(第四版)错误不完全汇集
前言 p12 ① 数据
类型
介绍中,增加了C99扩充的双长整型(long long
int
)、复数浮点型(float complex,double complex ,long long complex)、布尔型(bool)等,使读者有所了解。 ② C99要求,main函数的
类型
一律指定为
int
型,并在函数的末尾加一个返回语句“return 0;”。 评:long long complex,bool根本是子虚乌有的。数据
类型
都整不明白,还谈什么语言、算法呢? C99并没有要求main函数的
类型
一律指定为
int
型
基于C语言的学生信息管理系统开发
程序设计基础课程设计---基于C语言的学生管理软件开发
C语言
69,371
社区成员
243,081
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章