我正在尝试一些基于 C 的问题,并陷入了这个特定的问题。根据我的说法,old.out 文件应该用我们使用 scanf 输入的任何内容写入,因为 fprintf 将输入分配给文件指针,但令我惊讶的是,我看到没有任何内容被写入 old.out,因为后面的 while 循环是没有被执行。这是怎么回事?这与我对 fprintf 函数的误解有关吗?我已经粘贴了下面的代码。
#include<stdio.h>
main()
{
FILE *fp;
char a;
fp=fopen("old.out","w");
if(fp==0)
printf("File opening error");
else
{
for(scanf("%c",&a);a!=EOF;scanf("%c",&a))
fprintf(fp,"%c",a);
fclose(fp);
fp=fopen("old.out","r");
while(!feof(fp))
putchar(getc(fp));
}
return 0;
}