我正在尝试将字符写入C中的文件,但是这段代码:
case 4: //If the user types 4 (reset)
FILE * fp;
FILE *fp;
fp = fopen("settings.txt", "w");
fprintf(fp, "a");
int fclose(FILE * fp);
break;
显示此错误:
fileio.c:72:5: error: expected expression
FILE * fp;
(是的,我知道我曾两次使用file * fp
,但如果没有两次,则会显示更多错误。)
我该如何解决这个问题?
答案 0 :(得分:2)
这里有一些问题。您无法在案例陈述中声明新变量。在交换机外声明您的fp
。此外,只声明一次,当你关闭它时,调用函数而不是编写新的函数原型:
fclose(fp);
答案 1 :(得分:1)
此代码存在几个问题。您面临的主要问题是您不能直接在case语句下声明变量。如果需要在那里声明变量,则必须将代码块括在curlies中,因此:
case 4: //If the user types 4 (reset)
{
FILE *fp;
fp = fopen("settings.txt", "w");
fprintf(fp, "a");
fclose(fp);
break;
}
请注意,我还修复了你的fclose()调用 - 你所拥有的是不正确的。
答案 2 :(得分:0)
在close
语句中,您再次定义一个新指针。试试吧
FILE *fp;
fp = fopen("settings.txt", "w");
fprintf(fp, "a");
fclose(fp);