简明现代魔法 -> C/C++ -> C 程序设计:验证与打印 EOF

C 程序设计:验证与打印 EOF

2010-02-15

问题:验证布尔表达式 getchar() != EOF 的取值是 0 还是 1。

#include <stdio.h>

main()
{
	int c;
    
    while(c = (getchar() != EOF))
    	printf("%d\n", c);
    printf("%d - at EOF\n", c);
}

程序会读取字符,当有字符可读时,getchar() 不会返回文件结束符(EOF),所以 getchar() != EOF 的取值为真,变量 c 将被赋值为 1。当程序遇到文件结束符时,表达式取值为假,此时变量将被赋值为 0,程序将运行结束。

程序运行结果如下:

对于一个判断表达式,它的返回值会是一个布尔值。

问题:请编写一个打印 EOF 值的程序

#include <stdio.h>

main()
{
	printf("EOF is %d\n", EOF);
}

符号常量 EOF 是在头文件 stdio.h 中定义的,在这个程序中,printf() 语句中双引号外的 EOF 将被替换为头文件 stdio.h 中紧跟在 #define EOF 之后的文本。

程序运行结果如下:

在我们的系统中, EOF 被定义为 -1,但在其它系统中,EOF 可能被定义成其它的值。这正是使用 EOF 等标准符号常量能够增加程序可移植性的原因所在。

随机文章推荐
网站分类


注:如需转载本文,请注明出处(原文链接),谢谢。更多精彩内容,请进入简明现代魔法首页。

进入新博客
喜欢本文,就分享它吧
给我留言
您的名字:
您的邮件:
您的网站:


 

copyright © 2009 简明现代魔法    学习、分享、进步

power by Gonn 感谢所有关心和支持本站的朋友们