文件复制

借助于getchar 与putchar 函数,可以在不了解其它输入/输出知识的情况下编写出

数量惊人的有用的代码。最简单的例子就是把输入一次一个字符地复制到输出,其基本思想

如下:

读一个字符

while (该字符不是文件结束指示符)

输出刚读入的字符

读下一个字符

将上述基本思想转换为C语言程序为:

#include <stdio.h>
#include <Conio.h>
main(){
      /* copy input to output */
      int c;
      int d;
      d = EOF;
      while((c=getchar())!=EOF){
           putchar(c);
      }
      printf("EOF value is %d",d);
      getch();
}

输出:

在没有输入时,getchar 函数将返回一个特殊值,这个特殊值与任何实际字符都不同。这个

值称为EOF(end of file,文件结束)。我们在声明变量c 的时候,必须让它大到足以存

放getchar函数返回的任何值。这里之所以不把c声明成char类型,是因为它必须足够大,

除了能存储任何可能的字符外还要能存储文件结束符EOF。因此,我们将c声明成int类型。

而打印的结果也显示EOF的值为-1。

Tips

对 while语句的条件部分来说,赋值表达式两边的圆括号不能省略。不等于运算符!=的

优先级比赋值运算符=的优先级要高,这样,在不使用圆括号的情况下关系测试!=将在赋值=

操作之前执行。

posted @ 2015-04-29 15:31  平静缓和用胸音说爱  阅读(198)  评论(0编辑  收藏  举报