11.2.2文件的打开操作用以上方式可以打开文本文件或二进制文件,这是ANSIC的规定,即用同一种缓冲文件系统来处理文本文件和二进制文件。但目前使用的有些C编译系统可能不完全提供所有这些功能(例如有的只能用“r”,“w”、“a”方式),有的C版本不用“r+”、“wr"“ar”等,请W+"“a+”而用“rw”读者注意所用系统的规定
用以上方式可以打开文本文件或二进制文件,这是 ANSI C的规定,即用同一种缓冲文件系统来处理文本 文件和二进制文件。但目前使用的有些C编译系统可 能不完全提供所有这些功能(例如有的只能用“r”、 “w”、“a”方式),有的C版本不用“r+”、 “w+”、“a+”而用“rw”、“wr”、“ar”等,请 读者注意所用系统的规定。 11.2.2 文件的打开操作
11.2.2文件的打开操作如果不能实现“打开”的任务,fopen函数将会返回一个出错信息。出错的原因可能是:用“r”方式打开一个并不存在的文件;磁盘出故障;磁盘已满无法建立新文件等。此时fopen函数将带回一个空指针值NULL(NULL在stdio.h文件中已被定义为O)。常用下面的方法打开一个文件:o if((fp=fopen("filename", "r"))==NULL){printf("cannot open this file. n");exit(o);
如果不能实现“打开”的任务,fopen函数将会返回 一个出错信息。出错的原因可能是:用“r”方式打 开一个并不存在的文件;磁盘出故障;磁盘已满无 法建立新文件等。此时fopen函数将带回一个空指针 值NULL(NULL在stdio.h文件中已被定义为0)。常用 下面的方法打开一个文件: if((fp=fopen("filename", "r"))==NULL) { printf("cannot open this file.\n"); exit(0); } 11.2.2 文件的打开操作
11.2.2文件的打开操作用“w”方式打开文件时,只能从内存向该文件输出(写)数据,而不能从文件向内存输入数据。如果该文件原来不存在,则打开时按指定文件名建立一个新文件。如果原来的文件已经存在,则打开时将文件删空,然后重新建立一个新文件,所以务必小心
用“w”方式打开文件时,只能从内存向该文件输出 (写)数据, 而不能从文件向内存输入数据。如果 该文件原来不存在,则打开时按指定文件名建立一个 新文件。如果原来的文件已经存在,则打开时将文件 删空,然后重新建立一个新文件,所以务必小心。 11.2.2 文件的打开操作
用“a”方式打开文件时,向文件的尾部添加新数据文件中原来的数据保留,但要求文件必须存在,否则会返回出错信息。打开文件时,文件的位置指针在文件末尾。用“r+”、“a+”方式打开文件时,既可“r+"以输入也可以输出,不过三种方式是有区别的:方式要求必须文件存在;“w+”方式则建立新文件后进行读写;“a+”方式则保留文件原有的数据,进行追加或读的操作
用“a”方式打开文件时,向文件的尾部添加新数据, 文件中原来的数据保留,但要求文件必须存在,否则 会返回出错信息。打开文件时,文件的位置指针在文 件末尾。 用“r+”、 “w+”、 “a+”方式打开文件时,既可 以输入也可以输出,不过三种方式是有区别的:“r+” 方式要求必须文件存在;“w+”方式则建立新文件后 进行读写;“a+”方式则保留文件原有的数据,进行 追加或读的操作
11.2.2文件的打开操作,在用文本文件向计算机输入时,应将回车和换行两个字符转换为一个换行符:在输出时,应将换行符转换为回车和换行两个字符。在用二进制文件时,不需进行这种转换,因为在内存中的数据形式与输出到外部文件中的数据形式完全一致,一一对应
在用文本文件向计算机输入时,应将回车和换行两个 字符转换为一个换行符;在输出时,应将换行符转换 为回车和换行两个字符。在用二进制文件时,不需进 行这种转换,因为在内存中的数据形式与输出到外部 文件中的数据形式完全一致,一一对应。 11.2.2 文件的打开操作