清华大学出版社 TSINGHUA UNIVERSITY PRESS 打开一个并不存在的文件;磁盘出故障;磁盘已满 无法建立新文件等。此时fopen函数将带回一个空 指针值NULL(NULL在stdio.h文件中已被定义为 0)。 ·常用下面的方法打开一个文件: if ((fp=fopen("filel","r"))==NULL) printf("cannot open this file n"); exit(O); } 。 即先检查打开的操作有否出错,如果有错就在终 端上输出“cannot open this file'”。exit函数的作用 是关闭所有文件,终止正在调用的过程。待用户 检查出错误,修改后再运行
打开一个并不存在的文件;磁盘出故障;磁盘已满 无法建立新文件等。此时fopen函数将带回一个空 指针值NULL(NULL在stdio.h文件中已被定义为 0)。 • 常用下面的方法打开一个文件: if ((fp=fopen("file1","r"))==NULL) {printf("cannot open this file\n"); exit(0); } • 即先检查打开的操作有否出错,如果有错就在终 端上输出“cannot open this file”。exit函数的作用 是关闭所有文件,终止正在调用的过程。待用户 检查出错误,修改后再运行
清华大学出版社 TSINGHUA UNIVERSITY PRESS ·(⑥)用以上方式可以打开文本文件或二进制文件, 这是ANSI C的规定,用同一种缓冲文件系统来处 理文本文件和二进制文件。但目前使用的有些C 编译系统可能不完全提供所有这些功能(例如有的 只能用“r”、“w”、“a”方式),有的C版本不用 “r+”、“w+”、 “a+”,而用“rw”、“wr”、 “ar”等,请读者注意所用系统的规定。 ·()在向计算机输入文本文件时,将回车换行符转 换为一个换行符,在输出时把换行符转换成为回 车和换行两个字符。在用二进制文件时,不进行 这种转换,在内存中的数据形式与输出到外部文 件中的数据形式完全一致,一一对应
• (6) 用以上方式可以打开文本文件或二进制文件, 这是ANSI C的规定,用同一种缓冲文件系统来处 理文本文件和二进制文件。但目前使用的有些C 编译系统可能不完全提供所有这些功能(例如有的 只能用“r”、“w”、“a”方式),有的C版本不用 “r+”、“w+”、“a+”,而用“rw”、“wr”、 “ar”等,请读者注意所用系统的规定。 • (7) 在向计算机输入文本文件时,将回车换行符转 换为一个换行符,在输出时把换行符转换成为回 车和换行两个字符。在用二进制文件时,不进行 这种转换,在内存中的数据形式与输出到外部文 件中的数据形式完全一致,一一对应
清华大学出版社 TSINGHUA UNIVERSITY PRESS ·(⑧)在程序开始运行时,系统自动打开3个标准文 件:标准输入、标准输出、标准出错输出。通常 这3个文件都与终端相联系。因此以前我们所用到 的从终端输入或输出都不需要打开终端文件。系 统自动定义了3个文件指针stdin、stdout和stderr, 分别指向终端输入、终端输出和标准出错输?也从 终端输出)。如果程序中指定要从stdin所指的文件 输入数据,就是指从终端键盘输入数据。 13.3. 2文件的关闭(fclose函数) ·在使用完一个文件后应该关闭它,以防止它再被 误用。“关闭”就是使文件指针变量不指向该文 件
• (8) 在程序开始运行时,系统自动打开3个标准文 件:标准输入、标准输出、标准出错输出。通常 这3个文件都与终端相联系。因此以前我们所用到 的从终端输入或输出都不需要打开终端文件。系 统自动定义了3个文件指针stdin、stdout和stderr, 分别指向终端输入、终端输出和标准出错输?也从 终端输出)。如果程序中指定要从stdin所指的文件 输入数据,就是指从终端键盘输入数据。 13.3.2 文件的关闭(fclose函数) • 在使用完一个文件后应该关闭它,以防止它再被 误用。“关闭”就是使文件指针变量不指向该文 件
清华大学出版社 TSINGHUA UNIVERSITY PRESS 也就是文件指针变量与文件“脱钩”,此后不能 再通过该指针对原来与其相联系的文件进行读写 操作。除非再次打开,使该指针变量重新指向该 文件。 ·用fclose函数关闭文件。fclosei函数调用的一般形 式为 ● fclose(文件指针); 。例如: ·fclose(fp); 前面我们曾把打开文件(用fopen函数)时所带回的 指针赋给了fp,今通过fp把该文件关闭。即fp不再 指向该文件
也就是文件指针变量与文件“脱钩”,此后不能 再通过该指针对原来与其相联系的文件进行读写 操作。除非再次打开,使该指针变量重新指向该 文件。 • 用fclose函数关闭文件。fclose函数调用的一般形 式为 • fclose(文件指针); • 例如: • fclose(fp); • 前面我们曾把打开文件(用fopen函数)时所带回的 指针赋给了fp,今通过fp把该文件关闭。即fp不再 指向该文件
清华大学出版社 TSINGHUA UNIVERSITY PRESS 。应该养成在程序终止之前关闭所有文件的习惯, 如果不关闭文件将会丢失数据。因为,如前所述, 在向文件写数据时,是先将数据输到缓冲区,待 缓冲区充满后才正式输出给文件。如果当数据未 充满缓冲区而程序结束运行,就会将缓冲区中的 数据丢失。用fclosei函数关闭文件,可以避免这个 问题,它先把缓冲区中的数据输出到磁盘文件, 然后才释放文件指针变量。 fclosei函数也带回一个值,当顺利地执行了关闭操 作,则返回值为0;否则返回EOF(-1)。可以用 ferror函数来测试(见13.6.1节)
• 应该养成在程序终止之前关闭所有文件的习惯, 如果不关闭文件将会丢失数据。因为,如前所述, 在向文件写数据时,是先将数据输到缓冲区,待 缓冲区充满后才正式输出给文件。如果当数据未 充满缓冲区而程序结束运行,就会将缓冲区中的 数据丢失。用fclose函数关闭文件,可以避免这个 问题,它先把缓冲区中的数据输出到磁盘文件, 然后才释放文件指针变量。 • fclose函数也带回一个值,当顺利地执行了关闭操 作,则返回值为0;否则返回EOF(-1)。可以用 ferror函数来测试(见13.6.1节)