清华大学出版社 TSINGHUA UNIVERSITY PRESS ·有了结构体FLE类型之后,可以用它来定义若干 个FLE类型的变量,以便存放若干个文件的信息。 例如,可以定义以下FLE类型的数组。FLE 5定义了一个结构体数组f,它有5个元素,可以 用来存放5个文件的信息。 ·可以定义文件型指针变量。如: FILE fp; ·fp是一个指向FLE类型结构体的指针变量。可以 使指向某一个文件的结构体变量,从而通过该 结构体变量中的文件信息能够访问该文件。也就 是说,通过文件指针变量能够找到与它相关的文 件。如果有n个文件,一般应设n个指针变量(指向 FLE类型结构体的指针变量),使它们分别指向
• 有了结构体FILE类型之后,可以用它来定义若干 个FILE类型的变量,以便存放若干个文件的信息。 例如,可以定义以下FILE类型的数组。FILE f[5];定义了一个结构体数组f,它有5个元素,可以 用来存放5个文件的信息。 • 可以定义文件型指针变量。如: FILE fp; • fp是一个指向FILE类型结构体的指针变量。可以 使fp指向某一个文件的结构体变量,从而通过该 结构体变量中的文件信息能够访问该文件。也就 是说,通过文件指针变量能够找到与它相关的文 件。如果有n个文件,一般应设n个指针变量(指向 FILE类型结构体的指针变量),使它们分别指向
清华大学出版社 TSINGHUA UNIVERSITY PRESS 个文件(确切地说指向存放该文件信息的结构体 变量),以实现对文件的访问。 13.3文件的打开与关闭 和其他高级语言一样,对文件读写之前应该“打 开”该文件,在使用结束之后应关闭该文件。 13.3.1文件的打开(fopen函数) ·ANSI C规定了标准输入输出函数库,用fopen() 函数来实现打开文件
n个文件(确切地说指向存放该文件信息的结构体 变量),以实现对文件的访问。 13.3 文件的打开与关闭 • 和其他高级语言一样,对文件读写之前应该“打 开”该文件,在使用结束之后应关闭该文件。 13.3.1 文件的打开(fopen函数) • ANSI C规定了标准输入输出函数库,用fopen( ) 函数来实现打开文件
清华大学出版社 TSINGHUA UNIVERSITY PRESS fopen函数的调用方式通常为 ·FLE fp; fp=fopen(文件名,使用文件方式); 例如: fp=fopen("al","r"); 它表示要打开名字为a1的文件,使用文件方式为 “读入”(r代表read,即读入),fopen函数带回指 向a1文件的指针并赋给fp,这样fp就和文件a1相 联系了,或者说,fp指向a1文件。可以看出,在 打开一个文件时,通知给编译系统以下3个信息: ①需要打开的文件名,也就是准备访问的文件的 名字
• fopen函数的调用方式通常为 • FILE fp; • fp=fopen(文件名,使用文件方式); • 例如: • fp=fopen("a1","r"); • 它表示要打开名字为a1的文件,使用文件方式为 “读入” (r代表read,即读入),fopen函数带回指 向a1文件的指针并赋给fp,这样fp就和文件a1相 联系了,或者说,fp指向a1文件。可以看出,在 打开一个文件时,通知给编译系统以下3个信息: ①需要打开的文件名,也就是准备访问的文件的 名字
清华大学出版社 TSINGHUA UNIVERSITY PRESS ②使用文件的方式(“读”还是“写”等)。 ·③让哪一个指针变量指向被打开的文件。 ·说明 ·(1)用“”方式打开的文件只能用于向计算机输入 而不能用作向该文件输出数据,而且该文件应该 已经存在,不能用“”方式打开一个并不存在的 文件(即输入文件),否则出错。 ·(2)用“w”方式打开的文件只能用于向该文件写数 据(即输出文件),而不能用来向计算机输入。如果 原来不存在该文件,则在打开时新建立一个以指 定的名字命名的文件。如果原来已存在一个以该 文件名命名的文件,则在打开时将该文件删去, 然后重新建立一个新文件
• ②使用文件的方式(“读”还是“写”等)。 • ③让哪一个指针变量指向被打开的文件。 • 说明: • (1) 用“r”方式打开的文件只能用于向计算机输入 而不能用作向该文件输出数据,而且该文件应该 已经存在,不能用“r”方式打开一个并不存在的 文件(即输入文件),否则出错。 • (2) 用“w”方式打开的文件只能用于向该文件写数 据(即输出文件),而不能用来向计算机输入。如果 原来不存在该文件,则在打开时新建立一个以指 定的名字命名的文件。如果原来已存在一个以该 文件名命名的文件,则在打开时将该文件删去, 然后重新建立一个新文件
清华大学出版社 TSINGHUA UNIVERSITY PRESS (3)如果希望向文件末尾添加新的数据(不希望删 除原有数据),则应该用“a”方式打开。但此时该 文件必须已存在,否则将得到出错信息。打开时, 位置指针移到文件末尾。 (4)用“r+”、“w+”、“a+”方式打开的文件既可 。 以用来输入数据,也可以用来输出数据。用“+” 方式时该文件应该已经存在,以便能向计算机输 入数据。用“w+”方式则新建立一个文件,先向 此文件写数据,然后可以读此文件中的数据。用 “a+”方式打开的文件,原来的文件不被删去,位 置指针移到文件末尾,可以添加,也可以读。 ·(⑤)如果不能实现“打开”的任务,fopen函数将 会带回一个出错信息。出错的原因可能是用“” 方式
• (3) 如果希望向文件末尾添加新的数据(不希望删 除原有数据),则应该用“a”方式打开。但此时该 文件必须已存在,否则将得到出错信息。打开时, 位置指针移到文件末尾。 • (4) 用“r+”、“w+”、“a+”方式打开的文件既可 以用来输入数据,也可以用来输出数据。用“r+” 方式时该文件应该已经存在,以便能向计算机输 入数据。用“w+”方式则新建立一个文件,先向 此文件写数据,然后可以读此文件中的数据。用 “a+”方式打开的文件,原来的文件不被删去,位 置指针移到文件末尾,可以添加,也可以读。 • (5) 如果不能实现“打开”的任务,fopen函数将 会带回一个出错信息。出错的原因可能是用“r” 方式