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”)
因为如果要检查文件是否存在,应尝试以只读模式打开。此外,还有其他检查文件是否存在的方法,但它们可能是特定于平台的。