2012年(77)
分类:
2012-05-20 21:41:46
原文地址:C语言教程第十章:文件(3) 作者:sdccf
fclose
调用的一般形式是: fclose(文件); 例如:
fclose(fp); 正常完成关闭文件操作时,fclose返回值为0。如返回非零值则表示有错误发生。文件的读写对文件的读和写是最常用的文件操作。
在C语言中提供了多种文件读写的:
·字符读写 :fgetc和fputc
·字符串读写:fgets和fputs
·数据块读写:freed和fwrite
·格式化读写:fscanf和fprinf
下面分别予以介绍。使用以上都要求包含头文件stdio.h。字符读写fgetc和fputc字符读写是以字符(字节)为单位的读写。 每次可从文件读出或向文件写入一个字符。
一、读字符fgetc
fgetc的功能是从指定的文件中读一个字符,调用的形式为: 字符变量=fgetc(文件); 例如:ch=fgetc(fp);其意义是从打开的文件fp中读取一个字符并送入ch中。
对于fgetc的使用有以下几点说明:
1. 在fgetc调用中,读取的文件必须是以读或读写方式打开的。
2. 读取字符的结果也可以不向字符变量赋值,例如:fgetc(fp);但是读出的字符不能保存。
3. 在文件内部有一个位置。用来指向文件的当前读写字节。在文件打开时,该总是指向文件的第一个字节。使用fgetc 后, 该位置把向后移动一个字节。 因此可连续多次使用fgetc,读取多个字符。 应注意文件和文件内部的位置不是一回事。文件是指向整个文件的,须在程序中定义说明,只要不重新赋值,文件的值是不变的。文件内部的位置用以指示文件内部的当前读写位置,每读写一次,该均向后移动,它不需在程序中定义说明,而是由系统自动设置的。
[例10.1]读入文件e10-1.c,在屏幕上输出。
#include
main()
{
FILE *fp;
char ch;
if((fp=fopen("e10_1.c","rt"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
ch=fgetc(fp);
while (ch!=EOF)
{
putchar(ch);
ch=fgetc(fp);
}
fclose(fp);
}
本例程序的功能是从文件中逐个读取字符,在屏幕上显示。 程序定义了文件fp,以读文本文件方式打开文件“e10_1.c”, 并使fp指向该文件。如打开文件出错, 给出提示并退出程序。程序第12行先读出一个字符,然后进入循环, 只要读出的字符不是文件结束标志(每个文件末有一结束标志EOF)就把该字符显示在屏幕上,再读入下一字符。每读一次,文件内部的位置向后移动一个字符,文件结束时,该指向EOF。执行本程序把显示整个文件。