c语言代码中如何判断txt文件存在?如果不存在应该怎么办

img


在录取信息的时候无法保存信息 一直显示文件打开失败 这是因为txt文件不存在吗 如果不存在 应该怎么样解决现在的问题

到底时68行的fopen失败,还是84行的fopen失败啊?你先执行的时rs函数,还是save函数呢?
如果你初始并没有手工创建stu.data文件,那么rs函数中打开文件失败是正常的,不需要提醒。68行存储用w方式打开文件时,如果文件不存在,是会自动创建一个新文件的,而且如果文件已经存在,w方式打开会将文件内容清空的

如果是判断txt是否存在的话可以参考这个代码,使用file_exist()函数来判断

#include <stdio.h>

int file_exist(char *filename) {
    FILE *fp = fopen(filename, "r");
    if (fp != NULL) {
        fclose(fp);
        return 1;
    }
    return 0;
}

int main() {
    char *filename = "test.txt";
    if (file_exist(filename)) {
        printf("File exists!"); 
    } else {
        printf("File does not exist!"); 
    }
}
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7599366
  • 这篇博客你也可以参考下:关于用c语言来实现txt文件的输入输出问题
  • 除此之外, 这篇博客: 设在文件a.txt和文件b.txt中分别存有两个字符串,将两字符串按依次序交叉的方式合并为一个字符串,并将结果存入文件a.txt中。中的 解题思想: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 借助第三个文件c.txt,先将a.txt以及b.txt文件中的字符串按次序交叉复制到c.txt中,然后再将c.txt中的字符串复制到a.txt中(将a.txt中的原字符串覆盖)。

    拓展:或者可以借助一个一维字符数组,用来存放两字符串交叉相接后的结果,然后再将此字符数组中的内容复制到a.txt文件中。(注:此方式较局限些)*

  • 您还可以看一下 夏曹俊老师的网络小说抓取软件的设计与研发——来自企业开发实践经验课程中的 单章节txt生成功能的实现小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    问题回答:

    如何判断txt文件是否存在?

    可以使用C语言中的access函数来判断文件是否存在。access函数需要两个参数,第一个为文件的路径,第二个为操作选项。操作选项有以下几种: F_OK:判断文件是否存在 R_OK:判断文件是否可读 W_OK:判断文件是否可写 X_OK:判断文件是否可执行 我们只需要使用F_OK选项来判断文件是否存在即可。示例代码如下:

    #include <unistd.h> //需要用到access函数
    
    int main()
    {
        if(access("file.txt", F_OK) == 0)
        {
            printf("文件存在");
        }
        else
        {
            printf("文件不存在");
        }
        return 0;
    }
    

    若文件不存在,应该如何解决现在的问题?

    如果文件不存在,则需要先创建该文件。可以使用C语言中的fopen函数来创建文件,使用"w"选项来表示写入新文件。代码示例如下:

    #include <stdio.h>
    
    int main()
    {
        FILE *fp = fopen("file.txt", "w");
        if(fp == NULL)
        {
            printf("文件打开失败");
            return 0;
        }
    
        //文件写入操作
    
        fclose(fp);//关闭文件
        return 0;
    }
    

    如果文件已存在,fopen函数也会打开文件,并从文件开头开始写入,会清空文件中原有内容。如果想要在文件原有内容后面添加,可以使用"a"选项来打开文件,即fopen("file.txt", "a")。

    以上是对问题的回答,若需要进一步了解如何写入文件,请参考参考资料中的第四段,若需要了解如何提取文件中的特定信息,请参考参考资料中的第二段。