FILE
• FILE fopen(const char restrict path, const char *restrict mode);
• int fclose(FILE *stream);
• fscanf(FILE*, ...)
• fprintf(FILE*, ...)
打开⽂件的标准代码
FILE* fp = fopen(“file”,“r”);
if ( fp ) {
fscanf(fp,...);
fclose(fp);
}
else {
...
}
fopen
r 打开只读
r+ 打开读写,从⽂件头开始
w 打开只写。如果不存在则新建,如果存在则清空
w+ 打开读写。如果不存在则新建,如果存在则清空
a 打开追加。如果不存在则新建,如果存在则从⽂件尾开始
..x 只新建,如果⽂件已存在则不能打开
微软提供的fopen_s (该部分转载自CSDN)
fopen_s函数的用法
fopen_s函数声明如下:
errno_t fopen_s (
FILE** pFile,
const char *filename,
const char *mode
);
fopen_s函数有3个参数,它的调用方式为:fopen_s(指针,文件名,使用文件方式);
FILE** pFile:其中指针是用来接收 <指向目标文件的指针> 的指针。
fopen函数的返回值就是这里的FILE** pFile
参数定义:FILE *fp;
fp是一个指向FILE类型数据的指针;&p就是指向FILE类型数据的指针的地址,也就是<指向FILE类型数据的指针变量>的指针。只要记住,fopen_s的参数用法类似如下:
FILE *fp;
fopen_s(&fp, filename, "w")
fopen_s函数的返回值与fopen不同。正确打开返回0,不正确返回非0。
要定义一个变量err来接收fopen_s函数的返回值,即:
errno_t err;
其中errno_t是int的别名,typedef int errno_t;,即err是个整型值。通过判断err的值是否为0,可以知道打开数据文件成功与否。
判断打开成功与否fopen_s用:
(err = fopen_s(&fp, filename, “w”)) !=0
而fopen判断打开成功与否,用:
fp = fopen(filename, “w”)) == NULL
打开失败返回空指针NULL。
————————————————
版权声明:本文为CSDN博主「明泽.」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36955294/article/details/112800446
代码实战练习
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char const *argv[])
{
FILE* fp;
fopen_s(&fp, "NumbRead.txt", "r");
if (fp)
{
int numb_read = 0;
fscanf_s(fp, "%d", &numb_read);
fclose(fp);
printf("读入数据为%d\n", numb_read);
system("pause");
}
else {
printf("未找到指定文件");
system("pause");
}