文件I / O显示C中的编译错误

时间:2017-09-29 00:15:33

标签: c compiler-errors

我正在尝试将字符写入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,但如果没有两次,则会显示更多错误。)

我该如何解决这个问题?

3 个答案:

答案 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);