Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File C错误:在‘之前应为表达式;文件’;_File_C - Fatal编程技术网

File C错误:在‘之前应为表达式;文件’;

File C错误:在‘之前应为表达式;文件’;,file,c,File,C,下面是我的程序代码的一部分,这是我在论坛帖子的第一个答案中找到的: 此外,这里还有一些链接指向我读过但还没有弄明白的材料: 我想在我的整个程序中做的只是创建一个文件,然后检查它是否存在,并打印以显示文件创建是否成功。这应该很简单,但我得到了以下错误: foo.c:35:6: error: expected expression before ‘FILE’ 对不起,如果我看起来有点乱,请帮我弄清楚。如果你想让我提供更多的数据,请询问。提前谢谢 这就是问题所在 if (FILE * fp =

下面是我的程序代码的一部分,这是我在论坛帖子的第一个答案中找到的:

此外,这里还有一些链接指向我读过但还没有弄明白的材料:

我想在我的整个程序中做的只是创建一个文件,然后检查它是否存在,并打印以显示文件创建是否成功。这应该很简单,但我得到了以下错误:

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++编译器会抱怨。

< P>这是问题< /P>
if (FILE * fp = fopen(filename, mode))
应该是

if ((fp = fopen(filename, mode)) != NULL)
您在此行之前声明了
fp

<>语法无效,C,但有效C++语法。注意,你正在声明<代码> FP<代码>两次,所以C++编译器会抱怨。

< P>这是问题< /P>
if (FILE * fp = fopen(filename, mode))
应该是

if ((fp = fopen(filename, mode)) != NULL)
您在此行之前声明了
fp

<>语法无效,C,但有效C++语法。注意,你正在声明<代码> FP<代码>两次,所以C++编译器会抱怨。

< P>这是问题< /P>
if (FILE * fp = fopen(filename, mode))
应该是

if ((fp = fopen(filename, mode)) != NULL)
您在此行之前声明了
fp



<>语法无效,C,但有效C++语法。注意,你正在声明“代码> FP<代码>两次,所以C++编译器会抱怨。< /P>是的。这是他从GAMDEV中获取的例子,它是有效的C++,但不是有效的C.OK,我现在没有错误,但是我得到了这个警告:Foo.C:35:2:警告:建议赋值语句周围的括号用作真值[-Wparentheses ],这是正常的,你应该添加括号,因为你是
,正如警告所说的那样使用赋值作为真值。
,用更好的方式更新了答案。@mee,这是因为
x=y
看起来非常像
x==y
,后者在
if
语句中更常见。编译器告诉您可能输入错误。将语句用括号括起来,告诉编译器您确实想使用赋值作为条件。不,请提出新问题。这个问题已经解决了,但是,您是否初始化
模式
?尝试
char模式[2]=“r”
fopen(filename,“r”)
因为如果要检查文件是否存在,应尝试以只读模式打开。此外,还有其他检查文件是否存在的方法,但它们可能是特定于平台的。是的。这是他从GAMDEV中获取的例子,它是有效的C++,但不是有效的C.OK,我现在没有错误,但是我得到了这个警告:Foo.C:35:2:警告:建议赋值语句周围的括号用作真值[-Wparentheses ],这是正常的,你应该添加括号,因为你是
,正如警告所说的那样使用赋值作为真值。
,用更好的方式更新了答案。@mee,这是因为
x=y
看起来非常像
x==y
,后者在
if
语句中更常见。编译器告诉您可能输入错误。将语句用括号括起来,告诉编译器您确实想使用赋值作为条件。不,请提出新问题。这个问题已经解决了,但是,您是否初始化
模式
?尝试
char模式[2]=“r”
fopen(filename,“r”)
因为如果要检查文件是否存在,应尝试以只读模式打开。此外,还有其他检查文件是否存在的方法,但它们可能是特定于平台的。是的。这是他从GAMDEV中获取的例子,它是有效的C++,但不是有效的C.OK,我现在没有错误,但是我得到了这个警告:Foo.C:35:2:警告:建议赋值语句周围的括号用作真值[-Wparentheses ],这是正常的,你应该添加括号,因为你是
,正如警告所说的那样使用赋值作为真值。
,用更好的方式更新了答案。@mee,这是因为
x=y
看起来非常像
x==y
,后者在
if
语句中更常见。编译器告诉您可能输入错误。将语句用括号括起来,告诉编译器您确实想使用赋值作为条件。不,请提出新问题。这个问题已经解决了,但是,您是否初始化
模式
?尝试
char模式[2]=“r”
fopen(filename,“r”)
因为如果要检查文件是否存在,应尝试以只读模式打开。此外,还有其他检查文件是否存在的方法,但它们可能是特定于平台的。是的。这是他从GAMDEV中获取的例子,它是有效的C++,但不是有效的C.OK,我现在没有错误,但是我得到了这个警告:Foo.C:35:2:警告:建议赋值语句周围的括号用作真值[-Wparentheses ],这是正常的,你应该添加括号,因为你是
,正如警告所说的那样使用赋值作为真值。
,用更好的方式更新了答案。@mee,这是因为
x=y
看起来非常像
x==y
,后者在
if
语句中更常见。编译器告诉您可能输入错误。将语句用括号括起来,告诉编译器您确实想使用赋值作为条件。不,请提出新问题。这个问题已经解决了,但是,您是否初始化
模式
?尝试
char模式[2]=“r”
fopen(filename,“r”)
因为如果要检查文件是否存在,应尝试以只读模式打开。此外,还有其他检查文件是否存在的方法,但它们可能是特定于平台的。