为什么c的类型是int而不是char?
字符在键盘、屏幕或其它的任何地方无论以什么形式表现,它在机器内部都是以位模式存储的。char 类型专门用于存储这种字符型数据,当然任何整型(int)也可以用于存储字符型数据。因为某些潜在的重要原因,我们在此使用 int 类型。
这里需要解决如何区分文件中有效数据与输入结束符的问题。C 语言采取的解决方法是:在没有输入时,getchar 函数将返回一个特殊值,这个特殊值与任何实际字符都不同。这个值称为 EOF(end of file,文件结束符)。
我们在声明变量 c 的时候,必须让它大到足以存放 getchar 函数返回的任何值。这里之所以不把 c 声明成 char 类型,是因为它必须足够大,除了能存储任何可能的字符外还要能存储文件结束符 EOF。因此,我们将 c 声明成 int 类型。
EOF 定义在头文件
这个程序还可以写得更为精炼。