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++ 编译器无论如何都会抱怨。