文本文件未在C中打开

时间:2013-06-27 11:16:08

标签: c file

我需要打开这个文件,但它没有打开,我也不知道原因:

#include<stdio.h>

void copy();

int main(void)
{
    copy();

    return 0;
}

void copy()
{
    FILE *src = fopen("srcc.txt", "r+");

    if(!src)
    {
        printf("It was not possible to open the file");
        return;
    }
}

它只是传递if条件并显示消息it was not possible to open the file并且文件未创建。

3 个答案:

答案 0 :(得分:1)

您可以尝试使用errnostrerror()来获取特定的错误代码。对于大多数库实现的fopen(),errno变量也会在失败时设置为系统特定的错误代码。

您可以尝试以下方式:

#include <errno.h>
...
...
FILE *src = fopen("srcc.txt", "r+");
if(!src)
{
    printf("ERROR: %d - %s\n", errno, strerror(errno)); // <---- This will print out some 
                                                        // useful debug info for you
    printf("It was not possible to open the file");
    return;
}

errno.h将包含常见错误代码的定义列表,strerror()会将errno转换为您可以打印出来的字符串...

在这种情况下,您可能会看到的可能代码包括以下内容(只是从errno.h中逐字复制 - 我省略了实际值...):

#define EPERM  /* Operation not permitted */
#define ENOENT /* No such file or directory */
...
#define EACCES /* Permission denied */
...

答案 1 :(得分:0)

如果文件存在,它可能是只读的......你不能在不可写的文件上使用“r +”。你真的需要“r +”而不只是“r”吗?

答案 2 :(得分:0)

有可能无法找到该文件。我建议制作文件的各种副本并将它们放在各种文件夹中。