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");
    }

运行结果

运行结果

最后修改:2022 年 10 月 12 日
如果觉得我的文章对你有用,只需评论或转发支持,谢绝投喂!