0

这是代码:

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,但它存在:

在此处输入图像描述

4

3 回答 3

3

您显示的代码实际上并不能证明fopen失败。它本可以成功,errno只是因为之前发生的事情而出现了遗留错误。您应该只在errno发现它json为空之后再查看。

于 2013-07-28T19:00:56.470 回答
1

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

ifstream myfile;
myfile.open("D:\\platformer\\resources\\maps\\test.json");
if (myfile.is_open())
{
    // parsing. now it works.
}
于 2013-07-28T20:21:13.243 回答
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); 
 }
于 2013-07-28T19:09:33.973 回答