运行结果是乱码,求指导,解决

#define _CRT_SECURE_NO_WARNINGS
#include
#include
int main()
{
    FILE* fp = fopen("./2.txt", "r");
    if (fp == NULL)
    {
        perror("");
        return 0;
    }
    char s[256] = "";
    int i = 0;
    while (s[i++] = fgetc(fp) != -1);
    printf("%s\n", s);
    fclose(fp);
    //2.txt文本里只有hello这几个字符
    //运行结果怎么是以下这样呢
    return 0;
}

img

while (s[i++] = fgetc(fp) != -1);
改为
while ((s[i++] = fgetc(fp)) != -1);
========
注意运算符优先级

你好,将你的文件另存时编码换成ANSI

img


有帮助的话采纳一下哦!

改成:while ((s[i++] = fgetc(fp)) != -1);试试