说明在程序开始运行时,系统自动打开三个标准文件:标准输入、标准输出、标准出错输出。通常这三个文件都与终端相联系。因此以前我们所用到的从终端输入或输出,都不需要打开终端文件。系统自动定义了三个文件指针stdin、stdout和stderr,分别指向终端输入、终端输出和标准出错输出(也从终端输出)。如果程序中指定要从stdin所指的文件输入数据,就是指从终端键盘输入数据
说 明 在程序开始运行时,系统自动打开三个标准文件:标 准输入、标准输出、标准出错输出。通常这三个文件 都与终端相联系。因此以前我们所用到的从终端输入 或输出,都不需要打开终端文件。系统自动定义了三 个文件指针stdin、stdout和stderr,分别指向终端输 入、终端输出和标准出错输出(也从终端输出)。如 果程序中指定要从stdin所指的文件输入数据,就是指 从终端键盘输入数据
11.2.3文件的关闭操作文件在使用完后应该及时关闭它,以防止它再被误用。“关闭”就是释放文件指针。释放后的文件指针变量不再指向该文件,为自由的文件指针。这种方式可以避免文件中的数据丢失。释放指针后不能再通过该指针对原对应的文件进行读写操作,除非再次用该指针变量打开该文件。用fclose函数关闭文件。fclose函数调用的一般形式为:Ofclose(文件指针);例如:o fclose(fp);如果文件关闭成功,fclose函数返回值为O;如果关闭出错,则返回值为EoF(-1)。这可以用ferror函数来测试
11.2.3 文件的关闭操作 文件在使用完后应该及时关闭它,以防止它再被误用。“关闭”就是 释放文件指针。释放后的文件指针变量不再指向该文件,为自由的文 件指针。这种方式可以避免文件中的数据丢失。释放指针后不能再通 过该指针对原对应的文件进行读写操作,除非再次用该指针变量打开 该文件。 用fclose函数关闭文件。fclose函数调用的一般形式为: fclose(文件指针); 例如: fclose(fp); 如果文件关闭成功,fclose函数返回值为0;如果关闭出错,则返回 值为EOF(-1)。这可以用ferror函数来测试
文件的读写操作11.2.4字符读写函数字符输入函数fgetc从指定文件续入一个字符,该文件必须是以续或续写方式打开:的。fgetc函数的调用形式为:O ch=fgetc (fp) ;
11.2.4 文件的读写操作 字符读写函数 字符输入函数fgetc 从指定文件读入一个字符,该文件必须是以读或读写方式打开 的。 fgetc函数的调用形式为: ch=fgetc(fp);
【例11-1】显示文本文件readme.txt的内容#include<stdio.h>void mainOFILE*fp;charch;if(fp=fopen("readme.txt","r"))==NULL){printf("fileopenerror.|n");exit(o);1while((ch=fgetc(fp))!-EOF)putchar(ch)fclose(fp);7该程序完成:从一文件名为“readme.txt”的磁盘文件中顺序读取字符,并在标准输出设备显示器上输出
【例11-1】显示文本文件readme.txt的内容 #include <stdio.h> void main() { FILE *fp; char ch; if((fp=fopen("readme.txt","r"))==NULL) { printf("file open error.\n"); exit(0); } while((ch=fgetc(fp))!=EOF) putchar(ch); fclose(fp); } 该程序完成:从一文件名为“readme.txt”的磁盘文件中顺序读取字符, 并在标准输出设备显示器上输出
【例11-1】显示文本文件readme.txt的内容EOF为文本文件的结束标志。二进制文件中的数据某一个字节的值可能是-1,而这又恰好是EOF的值。所以,上述程序只适合处理文本文件。ANSIC已允许用缓冲区文件系统处理二进制文件.为了解决上述问题,ANSI C提供了一个feof函数来判断文件是否真的结束。Ofeof(fp用来测试fp所指向的文件当前状态是否为“文件结东”。O如果是文件结束,函数feof(fp)的值为1(真),否则为(假)
EOF为文本文件的结束标志。二进制文件中的数据, 某一个字节的值可能是-1,而这又恰好是EOF的值。 所以,上述程序只适合处理文本文件。ANSI C已允 许用缓冲区文件系统处理二进制文件. 为了解决上述问题,ANSI C提供了一个feof函数来 判断文件是否真的结束。 feof(fp)用来测试fp所指向的文件当前状态是否为“文件结 束”。 如果是文件结束,函数feof(fp)的值为1(真),否则为0 (假)。 【例11-1】显示文本文件readme.txt的内容