C语言fgetc()函数读到的内容异常(为[]})
#include<stdio.h>
int main()
{ FILE* fp;
char ch;
fp=fopen("D:/AB.txt","r");
while (ch=fgetc(fp)!=EOF)
{
printf("%c",ch);
}
fclose(fp);
system("pause");
}
可能和fgetc每次读一个字符有关
#include<stdio.h>
int main()
{
FILE* fp;
char ch;
fp = fopen("D:/AB.txt", "r");
while ((ch = fgetc(fp))!= EOF)
{
printf("%c", ch);
}
fclose(fp);
system("pause");
}
while循环的条件中有一些问题。你正在将fgetc的返回值赋值给ch,然后比较ch是否等于EOF。这是不正确的,因为赋值运算符的优先级低于比较运算符。这意味着在比较之前,fgetc会被先调用。
#include<stdio.h>
int main()
{
FILE* fp;
char ch;
fp=fopen("D:/AB.txt","r");
while ((ch=fgetc(fp))!=EOF)
{
printf("%c",ch);
}
fclose(fp);
system("pause");
return 0;
}
另外,在while循环体中再次调用fgetc是不必要的,因为每次循环都会调用一次fgetc。