第一弹 打印EOF

EOF是什么?

  • EOF(End Of File,文件结束)。
  • 在用getchar,计算机需要区分文件中有效数据和输入结束符的问题。C语言采用的解决办法是:在没有输入时,getchar返回一个特殊值,这个特殊值与任何实际字符都不同,称为EOF。EOF在头文件中定义,是一个int整型数。具体值不同平台有异。
  • 我们在声明变量c的时候,必须让它大到足以存放getchar的任何返回值。所以把c声明为int型,而不是char型。

打印EOF:

#include 

main()
{
	int c;

	while(1)
	{
		c = getchar();
		putchar(c);
	}

}


上面函数的功能是,将输入的字符串输出。虽然getchar是读取单个字符串,但是用了while(1)循环,所以是字符串输入输出。在VC++6.0下F11单步调试:

①输入字符串的情况下,如输入helloworld

c为整型,104是helloworld里面第一个h的asc码。单步执行F10,putchar先打印出h

101是e的asc码,然后putchar打印出e,此时屏幕有“he”。以后依次类推。

直到最后一个d打印出来之后,在继续F10,会发现c为赋值为10:

难道这就是传说中的EOF的值?

 

②什么都不输入,单步调试

c的值为10!

 

综上,getchar在没有输入的情况下,或者输入到结尾的情况下,返回的EOF 的值为10。

当然,可能EOF在不同机器上显示的值可能不同,这里只是提供一种查询EOF的值的方法。

你可能感兴趣的:(c语言,学习之路)