getchar()!= EOF 这里的文件结束符到底是什么?当输入的值为什么时,则getchar()!= EOF 为0?
EOFæ¯end of fileç缩åï¼è¡¨ç¤º"æåæµ"ï¼streamï¼çç»å°¾ãè¿éç"æåæµ"ï¼å¯ä»¥æ¯æ件ï¼fileï¼ï¼ä¹å¯ä»¥æ¯æ åè¾å ¥ï¼stdinï¼ã
EOFä¸æ¯ç¹æ®å符ï¼èæ¯ä¸ä¸ªå®ä¹å¨å¤´æ件stdio.hç常éï¼ä¸è¬çäº-1ã
#define EOF (-1)
é¤äºè¡¨ç¤ºæ件ç»å°¾ï¼EOFè¿å¯ä»¥è¡¨ç¤ºæ åè¾å ¥çç»å°¾ãä½æ¯ï¼æ åè¾å ¥ä¸æ件ä¸ä¸æ ·ï¼æ æ³äºå ç¥éè¾å ¥çé¿åº¦ï¼å¿ é¡»æå¨è¾å ¥ä¸ä¸ªå符ï¼è¡¨ç¤ºå°è¾¾EOFã
温馨提示:答案为网友推荐,仅供参考
第1个回答 推荐于2017-12-16
C语言标准库中的EOF 是宏常数,其定义是:
#define EOF (-1)
程序中凡写EOF处,将用 (-1) 替代,替代后再编译。
while((c=getchar())!=EOF) 就是 while((c=getchar())!=(-1))
------
当读语句(例如 fscanf) ,读到文件尾时,就会获得EOF,EOF又叫文件结束符。
读语句(例如getchar),遇到键盘输入ctrl+z 时也能 获得EOF。本回答被提问者采纳
#define EOF (-1)
程序中凡写EOF处,将用 (-1) 替代,替代后再编译。
while((c=getchar())!=EOF) 就是 while((c=getchar())!=(-1))
------
当读语句(例如 fscanf) ,读到文件尾时,就会获得EOF,EOF又叫文件结束符。
读语句(例如getchar),遇到键盘输入ctrl+z 时也能 获得EOF。本回答被提问者采纳
第2个回答 2019-11-19
eod
是end
of
file的缩写
。
你在用函数读入文件数据的时候,函数总会返回一个状态,是读取成功还是失败,那么这个状态怎么表示呢,所以就约定俗成定义一个标识符表示这个状态,就有了EOF。
scanf函数只有在第一个参数为NULL(空指针)的情况下,才可能返回EOF,否则,返回成功格式化并赋值的参数个数(>=0)。
所以,这个循环,将是一个死循环。
扩展资料:
EOF是一个计算机术语,为End
Of
File的缩写,在操作系统中表示资料源无更多的资料可读取。资料源通常称为档案或串流。通常在文本的最后存在此字符表示资料结束。
在C语言中,或更精确地说成C标准函数库中表示文件结束符(end
of
file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。
在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~127,不可能出现-1,因此可以用EOF作为文件结束标志。
参考资料:EOF–百度百科
是end
of
file的缩写
。
你在用函数读入文件数据的时候,函数总会返回一个状态,是读取成功还是失败,那么这个状态怎么表示呢,所以就约定俗成定义一个标识符表示这个状态,就有了EOF。
scanf函数只有在第一个参数为NULL(空指针)的情况下,才可能返回EOF,否则,返回成功格式化并赋值的参数个数(>=0)。
所以,这个循环,将是一个死循环。
扩展资料:
EOF是一个计算机术语,为End
Of
File的缩写,在操作系统中表示资料源无更多的资料可读取。资料源通常称为档案或串流。通常在文本的最后存在此字符表示资料结束。
在C语言中,或更精确地说成C标准函数库中表示文件结束符(end
of
file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。
在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~127,不可能出现-1,因此可以用EOF作为文件结束标志。
参考资料:EOF–百度百科
第3个回答 2019-06-20
EOF
是C语言里面的一个宏,它的值为-1
而scanf()函数出错时返回-1
因此,当输入有错误时退出循环
是C语言里面的一个宏,它的值为-1
而scanf()函数出错时返回-1
因此,当输入有错误时退出循环
第4个回答 2020-10-20
EOF就是一个文件结尾的宏定义
比如while循环的条件是==EOF,那么如果一直没有碰到文件结尾,那么就是死循环。
它就是一个宏定义,一个文件结束标志。
可以不严谨的等同于字符串结尾的“\0”(只是便于理解,其实不一样)
比如while循环的条件是==EOF,那么如果一直没有碰到文件结尾,那么就是死循环。
它就是一个宏定义,一个文件结束标志。
可以不严谨的等同于字符串结尾的“\0”(只是便于理解,其实不一样)