现在的位置: 首页 > 11 文件处理 > 例题 > 正文

文件复制

2011年02月17日 11 文件处理, 例题 ⁄ 共 1480字 ⁄ 字号 暂无评论

为什么c的类型是int而不是char?

字符在键盘、屏幕或其它的任何地方无论以什么形式表现,它在机器内部都是以位模式存储的。char 类型专门用于存储这种字符型数据,当然任何整型(int)也可以用于存储字符型数据。因为某些潜在的重要原因,我们在此使用 int 类型。

这里需要解决如何区分文件中有效数据与输入结束符的问题。C 语言采取的解决方法是:在没有输入时,getchar 函数将返回一个特殊值,这个特殊值与任何实际字符都不同。这个值称为 EOF(end of file,文件结束符)。

我们在声明变量 c 的时候,必须让它大到足以存放 getchar 函数返回的任何值。这里之所以不把 c 声明成 char 类型,是因为它必须足够大,除了能存储任何可能的字符外还要能存储文件结束符 EOF。因此,我们将 c 声明成 int 类型。

EOF 定义在头文件中,是个整型数,其具体数值是什么并不重要,只要它与任何 char 类型的值都不相同即可。这里使用符号常量,可以确保程序不需要依赖于其对应的任何特定的数值。

这个程序还可以写得更为精炼。

抱歉!评论已关闭.