putchar(ch)函数的疑问#include #include #define NULL 0void 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

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/19 09:25:57
putchar(ch)函数的疑问#include#include#defineNULL0voidmain(){FILE*fp;charch,filename[10];scanf("%s",filena

putchar(ch)函数的疑问#include #include #define NULL 0void 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)函数的疑问
#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);我理解是输入一个字符,紧跟着就把这个字符输出,但事实上不是,是等多个字符输入完,回车后,一次性输出所输入字符.
我不解,

putchar(ch)函数的疑问#include #include #define NULL 0void 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
注意:
当用标准文件函数对文件进行读写操作时,首先将所读写的内容放进缓冲区,
即写函数只对输出缓冲区进行操作,读函数只对输入缓冲区进行操作.例如向一个文件写入内容,所写的内容将首先放在输出缓冲区中,直到输出缓冲区存满或 使用fclose()函数关闭文件时,缓冲区的内容才会写入文件中.若无fclose() 函数,则不会向文件中存入所写的内容或写入的文件内容不全.所以在对文件操作中,打开文件后记得在程序最后一定要用flcose(fp);关闭文件.