一个例子让你明白getcahr()吃回车

  • Post author:
  • Post category:其他


#include<stdio.h>

int main(){


int ch=0;

int i=0;

while((ch=getcahr())!=EOF){


putchar(ch);

printf(“%d”,i);

}

return 0;

}

这个例子中我输入一个a,他会输出a和一个回车,在计算机当中输入时会有一个输入缓冲区我们键盘输入的内容会先存入到输入缓冲区内,程序会在输入缓冲区中读函数,与scanf(“%s”,str)遇见空格回车换行就停止读入不同,getchar()和scanf(“%c”,&a)一样每次从输入缓冲区内读入一个字符也会读回车,因为我们输入时必须要按回车但回车会被放到输入缓冲区中被读到。

int main() {


putchar(getchar());

printf(“————“);

//  putchar(getchar());

printf(“————“);

return 0;

}

int main() {


putchar(getchar());

printf(“————“);

putchar(getchar());

printf(“————“);

return 0;

}

由这两个例子可以看出第二个getchar()是读取了一个换行符的,因此为避免缓冲区内残留的未被读取的换行符影响接下来的操作,我们通常直接写一个getchar()将缓冲区内的换行符读出来,对于这个换行符我们不用putchar再进行输出,这样既不影响程序的正常输出将缓冲区的换行符变相的删除掉了。



版权声明:本文为m0_57552660原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。