我需要打开这个文件,但它没有打开,我也不知道原因:
#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
并且文件未创建。
答案 0 :(得分:1)
您可以尝试使用errno和strerror()来获取特定的错误代码。对于大多数库实现的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)
有可能无法找到该文件。我建议制作文件的各种副本并将它们放在各种文件夹中。