C error: expected expression before ‘FILE’
C error: expected expression before ‘FILE’
下面是我的一段程序代码,是我在本论坛的第一个回答中找到的post:
http://www.gamedev.net/topic/266856-how-to-check-if-a-file-exists-in-c/
此外,这里有一些指向 material 的链接我已经阅读但仍未弄明白:
http://www.dreamincode.net/forums/topic/333715-error-expected-expression-before-file/
http://www.avrfreaks.net/forum/error-expected-expression-struct
char filename[100];
char mode[2];
bool exists(const char * filename)
{
FILE * fp;
if (FILE * fp = fopen(filename, mode))
{
fclose(fp);
return true;
}
return false;
}
我想在我的整个程序中做的只是创建一个文件,然后检查它是否存在并打印到屏幕上是否文件创建成功。它应该很简单,但我得到这个错误:
foo.c:35:6: error: expected expression before ‘FILE’
抱歉,如果我看起来有点乱,请帮我解决这个问题。如果你想让我包含更多数据,尽管问。提前致谢!
这就是问题所在
if (FILE * fp = fopen(filename, mode))
应该是
if ((fp = fopen(filename, mode)) != NULL)
您在此行之前声明了 fp
。
该语法在 c 中无效,但在 c++ 中有效。请注意,您声明了 fp
两次,因此 C++ 编译器无论如何都会抱怨。
下面是我的一段程序代码,是我在本论坛的第一个回答中找到的post: http://www.gamedev.net/topic/266856-how-to-check-if-a-file-exists-in-c/
此外,这里有一些指向 material 的链接我已经阅读但仍未弄明白:
http://www.dreamincode.net/forums/topic/333715-error-expected-expression-before-file/ http://www.avrfreaks.net/forum/error-expected-expression-struct
char filename[100];
char mode[2];
bool exists(const char * filename)
{
FILE * fp;
if (FILE * fp = fopen(filename, mode))
{
fclose(fp);
return true;
}
return false;
}
我想在我的整个程序中做的只是创建一个文件,然后检查它是否存在并打印到屏幕上是否文件创建成功。它应该很简单,但我得到这个错误:
foo.c:35:6: error: expected expression before ‘FILE’
抱歉,如果我看起来有点乱,请帮我解决这个问题。如果你想让我包含更多数据,尽管问。提前致谢!
这就是问题所在
if (FILE * fp = fopen(filename, mode))
应该是
if ((fp = fopen(filename, mode)) != NULL)
您在此行之前声明了 fp
。
该语法在 c 中无效,但在 c++ 中有效。请注意,您声明了 fp
两次,因此 C++ 编译器无论如何都会抱怨。