【发布时间】:2021-10-21 06:43:27
【问题描述】:
#include <stdio.h>
int main ()
{
FILE *fp;
int c;
fp = fopen("file.txt","r");
while(1)
{
c = fgetc(fp);
if( feof(fp) )
{
break ;
}
printf("%c", c);
}
fclose(fp);
return(0);
}
在代码中,fgetc(fp) 使用 int 作为返回类型,所以为什么我们使用 "printf("%c",c);"而不是 "print("%d",c);"
【问题讨论】:
-
如果你想查看
c的整数表示,你可以使用%d。 -
cprogramming.com/tutorial/printf-format-strings.html 是否充分解释了事情? % 代码不代表确切的数据类型;它们代表解释信息的方式(恰好对所提供的数据有一些粗略的期望)。
-
与问题无关,但您一定要检查来自
fopen()的返回,然后再转到while(1)。 -
有点相关:
fgetc返回int而不是您可能期望的char的原因是返回值必须能够代表每个可能的char值作为特殊值EOF表示失败。