我明明定义了a,为什么它说我未声明?

img


这个是文件的读取,我明明已经声明了a,为什么它还说我未声明?难道是因为版本太低了吗?还望解答

你是用的C标准太低了,C文件要求将变量定义都放在函数开头,代码块中间是不能定义新的变量的。将char a放到函数的第一行就行了

int main()
{
    char a;
    FILE *fp =NULL;
    fopen_s(&fp,"C\\User\\...\\text.txt","r");
    a = fgetc(fp);
    printf("%c",a);
}

而VS2010的C编译器只支持C89标准,对C99标准支持不完全,而在C89标准中,变量需要放到函数体的前面声明,先声明再使用。

img

目测代码没有问题

img

错误不在变量上,而是在警告上,你在文件的第一行添加这个宏:

#define _CRT_SECURE_NO_WARNINGS
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632