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

#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再进行输出,这样既不影响程序的正常输出将缓冲区的换行符变相的删除掉了。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值