fopen返回没有这样的文件或目录,文件存在

时间:2013-07-28 18:57:50

标签: c

以下是代码:

FILE* json = fopen("D:\\platformer\\resources\\maps\\test.json", "r");
if (json == 0)
{
    // No such file or directory
    String aa = strerror(errno);
}

它始终返回No such file or directory,但它存在:

enter image description here

3 个答案:

答案 0 :(得分:3)

您展示的代码实际上并未证明fopen失败了。它本来可以成功,errno只是从早先发生的事情中得到了剩余的错误。在您发现errno为空后,您应该只看json

答案 1 :(得分:1)

json对于成功打开

不为零
if (json == NULL) // or 0
        printf ("Error opening file: %s\n",strerror(errno));

所以,

//clean errno
errno =  0;
FILE* json = fopen("D:\\platformer\\resources\\maps\\test.json", "r"); 
if (json == 0) <-- Fix 
 {
        String aa = strerror(errno); 
 }

答案 2 :(得分:1)

通过使用C ++的类来解决它。

ifstream myfile;
myfile.open("D:\\platformer\\resources\\maps\\test.json");
if (myfile.is_open())
{
    // parsing. now it works.
}