Buryool 发表于 2021-11-3 17:52:59

文件处理

#include "stdio.h"

int main() {
        FILE* fp1;
        errno_t err;
       
        err = fopen_s(&fp1, "C:\\Users\\seng1\\Desktop\\信息系统\\Week8\\information.txt", "r");
        if (err != 0) {
                printf("The file can't be opened!");
        }

        fclose(fp1);


        return 0;
}

为什么会出现图片中的问题?用VS2019一直运行过不去,而且每次的提示错误还不一样?我快烦死了已经。。。。

桃花飞舞 发表于 2021-11-3 17:53:00

我给你的代码改了下haha.txt放在和源代码一个目录
#include <stdio.h>

int main() {
        //FILE* fp1;
        //errno_t err;
       
        FILE*fp1 = fopen("haha.txt", "r");
        if (NULL == fp1) {
                printf("File:%s Not Found ","haha.txt");
        }
       
        fclose(fp1);
       
       
        return 0;
}
关于你的问题我觉的是fp1有可能等于NULL,所以不符合fclose的规范,其他的错误我就不懂了不过我觉的还是尽量避免错误的出现,尽量不去用哪些容易出错的语法。我百度了一下errno_t是用在C++中的。

Max472 发表于 2021-11-3 18:22:11

errno_t 是什么类型?
FILE *fp;
if( (fp=fopen("D:\\demo.txt","rb")) == NULL ){
    printf("Fail to open file!\n");
    exit(0);//退出程序(结束程序)
}

这样试试

jhq999 发表于 2021-11-3 18:53:02

本帖最后由 jhq999 于 2021-11-3 18:55 编辑


      if (err != 0) {
         printf("The file can't be opened!");
         return 0;
      }

learner-ray 发表于 2021-11-4 19:17:18

个人揣测:我用的DEV C++编译不了你的代码。
因为是用只读来打开的文件,如果该文件不存在,那么不会自动创建,此时fclose(fp1)fp1=NULL不符合规范,因此可以加个在fclose前面加个else试试。

Buryool 发表于 2021-11-7 19:19:05

非常感谢大家!
页: [1]
查看完整版本: 文件处理