这是代码:
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
,但它存在:
这是代码:
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
,但它存在:
您显示的代码实际上并不能证明fopen
失败。它本可以成功,errno
只是因为之前发生的事情而出现了遗留错误。您应该只在errno
发现它json
为空之后再查看。
通过使用 C++ 的类来解决它。
ifstream myfile;
myfile.open("D:\\platformer\\resources\\maps\\test.json");
if (myfile.is_open())
{
// parsing. now it works.
}
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);
}