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

文件复制

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

对于经验比较丰富的 C 语言程序员,可以把这个字符复制程序编写得更精炼一些。在 C语言中,类似于

c = getchar()

之类的赋值操作是一个表达式,并且具有一个值,即赋值后左边变量保存的值。也就是说,赋值可以作为更大的表达式的一部分出现。如果将为 c 赋值的操作放在 while 循环语句的测试部分中,上述字符复制程序便可以改写成下列形式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
 
int main(int argc, char *argv[])
{
	int c;
 
	c = getchar();
	while ( c != EOF ) {
		putchar(c);
		c = getchar();
	}
 
	return 0;
}

在该程序中,while 循环语句首先读一个字符并将其赋值给 c,然后测试该字符是否为文件结束标志。如果该字符不是文件结束标志,则执行 while 语句体,并打印该字符。随后重复执行 while 语句。当到达输入的结尾位置时,while 循环语句终止执行,从而整个 main 函数执行结束。

以上这段程序将输入集中化,getchar 函数在程序中只出现了一次,这样就缩短了程序,整个程序看起来更紧凑。习惯这种风格后,读者就会发现按照这种方式编写的程序更易阅读。我们经常会看到这种风格。

抱歉!评论已关闭.