在C程序中使用文件,需要完成以下操作。
(1)声明一个FILE*类型的指针变量,程序通过改变量对所指向的文件进行操作。
(2)通过调用fopen函数将此变量和某个实际文件相联系,这一操作称为打开文件。打开一个文件需要指定一个文件名,并且指定该文件是用于输出还是输入(读还是写)。
(3)调用适当的文件处理函数完成必要的I /O操作。这些函数的原型声明包含在头文件stdio.h中。
(4)通过调用fclose函数声明文件操作结束,这一操作称为关闭文件,他断开了FILE*类型的变量与实际文件间的联系。
示例结果:
示例输入:
(1)声明一个FILE*类型的指针变量,程序通过改变量对所指向的文件进行操作。
(2)通过调用fopen函数将此变量和某个实际文件相联系,这一操作称为打开文件。打开一个文件需要指定一个文件名,并且指定该文件是用于输出还是输入(读还是写)。
(3)调用适当的文件处理函数完成必要的I /O操作。这些函数的原型声明包含在头文件stdio.h中。
(4)通过调用fclose函数声明文件操作结束,这一操作称为关闭文件,他断开了FILE*类型的变量与实际文件间的联系。
示例代码:
#include<stdio.h>
#include<stdlib.h>
int main() {
FILE *fp;
int i = 0;
char s;
fp = fopen("d:\\date.txt", "r");
while(!feof(fp)) {
fscanf(fp, "%c", &s);
printf("%c", s);
}
fclose(fp);
system("pause");
return 0;
}
示例结果:
打开文件的使用方式
“r”——只读,以只读方式打开已存在文件。
“w”——只写,以只写方式新建文本文件,若存在同名文件则刷新已有文件。
“a”——追加,以只读方式打开文已存在本文件,数据追加到末尾。
“r+”——读写,为读/写方式打开已存在文本文件。
“w+”——读写,以读/写方式新建文本文件,若存在同名文件则刷新已有文件。
“a+”——读写,以读/写方式打开已存在文本文件,数据追加到末尾。
格式化的数据读/写
(1)格式化输入函数
Int fscanf(FILE *fp, char *format, 地址列表)
功能:按照格式控制字符串format所给定的输入格式,把从fp所指向的文件当期那读写位置起读入的数据,按地址列表存入指定的存储单元。从文件读入数据后,文件读写位置向后做相应的移动。
(2)格式化输出函数
Int fprintf(FILE *fp, char *format, 输出表)
功能:按照格式控制字符串format所给定的输出格式,从fp所指向文件的当前读写位置起,把输出表中各表达式值输出文件。
fprintf函数、fscanf函数与printf函数、scanf函数作用相仿,都是格式化读写函数,知识fprintf和fscanf函数的读写对象不是终端而是磁盘文件。
示例代码:
/*从键盘上输入10个学生的C语言成绩,以格式%5d写到文本文件score.txt中。*/
#include<stdio.h>
#include<stdlib.h>
int main() {
FILE *fp1;
int i, score;
fp1 = fopen("d:\\score.txt", "w");
for(i = 0; i < 10; i++) {
scanf("%d", &score);
fprintf(fp1, "%5d", score);
}
fclose(fp1);
system("pause");
return 0;
}
示例输入:
示例结果:
在D盘中找到并打开score.txt文本文件。