C 语言文件操作之----文件的读写 当文件按指定的工作方式打开以后,就可以执行对文件的读和写。下面按文件的性质分类进行操作。针对文本文件和二进制文件的不同性质,对文本文件来说,可按字符读写或按字符串读写;对二进制文件来说,可进行成块的读写或格式化的读写。 1. 读写字符 C 提供fgetc 和 fpu tc 函数对文本文件进行字符的读写,其函数的原型存于stdio.h 头文件中,格式为: int fgetc(FILE *stream) fgetc( )函数从输入流的当前位置返回一个字符,并将文件指针指示器移到下一个字符处,如果已到文件尾,函数返回EOF, 此时表示本次操作结束,若读写文件完成,则应关闭文件。 int fpu tc(int ch,FILE *stream) fpu tc() 函数完成将字符c h 的值写入所指定的流文件的当前位置处,并将文件指针后移一位。fpu tc()函数的返回值是所写入字符的值,出错时返回EOF。 [例 8-2] 将存放于磁盘的指定文本文件按读写字符方式逐个地从文件读出,然后再将其显示到屏幕上。采用带参数的main( ),指定的磁盘文件名由命令行方式通过键盘给定。 # i nclu de main(argc,argv ) int argc; char *argv[]; { char ch; FILE *fp; int i; if((fp=fopen(argv[1],"r"))==NULL) /* 打开一个由argv[1]所指的文件*/ { printf("not open"); exit(0); } while ((ch=fgetc(fp))!=EOF) /* 从文件读一字符,显示到屏幕*/ putchar(ch); fclose(fp); } 程序是一带参数的main( )函数,要求以命令行方式运行,其参数argc 是用于记录输入参数的个数, argv 是指针数组,用于存放输入参数的字符串,串的个数由argc 描述。假设我们指定读取的文件名为 L8-2.c,并且列表文件内容就是源程序。经过编 译和连接生成可执行的文件L8-2.exe。运行程序l8-2.exe,输入的命令行方式为: c:\tc>l8-2 L8-2.c 上述程序以命令行方式运行,其输入参数字符串有两个,即argv[0]="c:\tc>l8-2"、argv[1]=" L8-2.c ",argc = 2。故打开的文件是L8-2.c 。程序中对 fgetc( )函数的返回值不断进行测试,若读到文件尾部或读文件出错,都将返回 C 的整型常量 EOF,其值为非零有效整数。程序的运行输出为源程序本身: c:\tc>l8-2 L8-2.c #i nclude main( argc,argv) int argc; char *argv[]; { char ch; FILE *fp; int i; if((fp=fopen(argv[1],"r"))==NULL) /* 打开一个...