(1)fopen/fopen_s
功能:打开一个文件。
格式:FILE*fp;//定义一个文件类型指针(FILE是计算机预先设好的一种结构体)
fp=fopen("filename.txt","w+");
或者
FILE*fp;
fopen_s(&fp,"filename.txt","w+");
其中,"filename.txt"为与.cpp同一目录下的文件名,"w+"为使用文件方式。还有其他使用方式,如下。
文件使用方式 | 含义 | 若文件不存在 |
"r"(只读) | 为了输入打开一个已存在的文件 | 出错 |
"w"(只写) | 为了输出数据打开一个文件 | 新建 |
"a"(追加) | 向文件末尾添加数据 | 出错 |
"rb"(只读) | 为了输入打开一个已存在的二进制文件 | 出错 |
"wb"(只写) | 为了输出数据打开一个二进制文件 | 新建 |
"ab"(追加) | 向二进制文件末尾添加数据 | 出错 |
"r+"(读写) | 为了读和写打开一个已存在的文件 | 出错 |
"w+"(读写) | 为读和写了新建一个文件 | 新建 |
"a+"(读写) | 向文件末尾读取或写入数据 | 新建 |
"rb+"(读写) | 为了读和写打开一个已存在的二进制文件 | 出错 |
"wb+"(读写) | 为了读和写新建一个二进制文件 | 新建 |
"ab+"(读写) | 向二进制文件末尾读取或写入数据 | 新建 |
(2)fscanf/fscanf_s
功能:从文件中读取数据写入准备好的存储单元中。
返回值:fscanf_s函数的返回值为读取的数据个数。若遇见文件结束或读取失败则返回EOF(-1)。
格式:fscanf_s(fp,"%d,%f",&i,&t);
或者fscanf(fp,"%d,%f",&i,&t);
其中,fp为文件类型指针,"%d,%f"为格式字符串,&i,&t为输入项地址列表。
(3)fprintf/fprintf_s
功能:向文件写入数据。
格式:fprintf_s(fp,"%d,%f",i,t);
或者fprintf(fp,"%d,%f",i,t);
(4)fclose
功能:关闭文件。
格式:fclose(fp);
#include<stdio.h>
#include<stdlib.h>
int main() {
char ch = 'a';
FILE* fp;
fopen_s(&fp, "file.txt", "w");
for (int i = 0; i < 26; i++) {
fprintf_s(fp, "%c", ch);
ch++;
}
fclose(fp);
return 0;
}
该段代码实现将a~z写入新建文件file.txt中。
再试着读取一个数据,
#include<stdio.h>
#include<stdlib.h>
int main() {
char ch = 'a';
FILE* fp;
fopen_s(&fp, "file.txt", "w");
for (int i = 0; i < 26; i++) {
fprintf_s(fp, "%c", ch);
ch++;
}
fclose(fp);
fopen_s(&fp, "file.txt", "r");
char slip;
fscanf_s(fp, "%c", &slip);
fclose(fp);
printf("%c", slip);
return 0;
}
就能将第一个数据’a'赋给slip.