有关文件操作的问题
#include<stdio.h>
main()
{
FILE *fp;
char ch,filename[10];
scanf("%s",filename);
if((fp=fopen("filename","w"))==NULL)
{
printf("cannot open this file!\n");
exit(0);
}
ch=getchar();
while(ch!='#')
{
fputc(ch,fp);
putchar(ch);
ch=getchar();
}
fclose(fp);
}
程序中有两处ch=getchar();
第一个的作用是接收scanf后的回车符还是接收输入的第一个字符?
第二个的作用是什么?为什么如果没有第二个编译也能通过但不能执行?
请各大侠指点