其中两个getchar是什么含义?

来源:百度知道 编辑:UC知道 时间:2024/06/06 07:04:46
#include<stdio.h>
#include<stdlib.h>
void main()
{
FILE *fp;
char ch,filename[10];
scanf("%s",filename);
if((fp=fopen(filename,"w"))==NULL)
{printf("can not open the file\n");
exit(0);}
ch=getchar();
ch=getchar();
while(ch!='#')
{
fputc(ch,fp);putchar(ch);
ch=getchar();

}
putchar(10);
fclose(fp);

}从键盘输入一些字符。逐个把他们送到磁盘上,知道输入一个#为止。

因为你之前输入别的数据时,肯定是按回车结束的,而回车实际上输入了两个字符,一个是'\r',是用来让输入语句结束的,还有一个'\n'仍然保留在了输入缓冲区内,会被其他读取字符的语句读到,因此,为了防止别的语句读到这个'\n',需要用一个getchar()先把它读走。

其实一个就够 前一个是用来清楚输入缓冲的