作业帮 > 综合 > 作业

putchar(ch)函数的疑问

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/01 17:23:17
putchar(ch)函数的疑问
#include
#include
#define NULL 0
void main()
{
FILE *fp;
char ch,filename[10];
scanf("%s",filename);
if ((fp=fopen(filename,"w"))==NULL)
{printf("can not open file!\n");
exit(0);
}
ch=getchar();
ch=getchar();
while(ch!='#')
{
fputc(ch,fp);putchar(ch);
ch=getchar();
}
putchar(10);
fclose(fp);
}
上述代码中,向文件写入,并读出时候,
fputc(ch,fp);putchar(ch);我理解是输入一个字符,紧跟着就把这个字符输出,但事实上不是,是等多个字符输入完,回车后,一次性输出所输入字符.
我不解,
注意:
当用标准文件函数对文件进行读写操作时,首先将所读写的内容放进缓冲区,
即写函数只对输出缓冲区进行操作,读函数只对输入缓冲区进行操作.例如向一个文件写入内容,所写的内容将首先放在输出缓冲区中,直到输出缓冲区存满或 使用fclose()函数关闭文件时,缓冲区的内容才会写入文件中.若无fclose() 函数,则不会向文件中存入所写的内容或写入的文件内容不全.所以在对文件操作中,打开文件后记得在程序最后一定要用flcose(fp);关闭文件.