c语言 关于scanf输入时回车符如何处理

以一个简单的程序为例:

输出输入字符的ASCII值

#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>

int main()

{

 char x;

 int y;

 while (scanf("%c", &x)!=EOF) 

 {

  y = x;

  printf("%d\n", y);

 }

 return 0;

}

我们会发现,在输出的时候会有一个回车符的ASCII码值被连带输出:

535dc997a44943d0a263533042c1db69.jpg

 (\n 回车的ASCII码为10)

为什么呢?

因为我们在输入字符后,scanf函数读取字符,运行程序,我们需要按一个回车,然后就有一个输出,但是此时的scanf函数也将回车符读入了,我们输出的时候会将回车符的ASCII码一起输出

那么在我们需要输入多组字符时如何解决scanf函数读取回车符的这个问题呢?

b699a6dae470466d9b321e98a2c623f1.jpg

 getchar():字符输入函数,没有参数,从输入缓冲区里面读取一个字符

它会将回车符读取,scanf函数就不会读取回车符到从而不影响函数的输出。

 

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值