getchar和scanf的区别

scanf可以一次按照设定的输入格式输入多个变量数据.如
int d,
float f,
char str[20],

scanf("%d%f%s",d,f,str);

例: 使用 scanf 输入  42

scanf()中使用%c说明符,该函数将只读取字符4 并将其存储在一个char类型的变量中

如果使用%s说明符,该函数会读取两个字符,即字符4和字符2,并将它们存储在一个字符串中。

如果使用%d说明符,则scanf 读取同样的两个字符,但是随后它会继续计算与它们的相应的整数值为4*10+2  得到 42;

然后将该整数的二进制表示保存在一个int变量中,

如果使用%f说明符 则scanf()读取这两个字符 计算它们对应的数值 42,然后以内部的浮点表述该值,并将结果保存在一个float变量中

简而言之 输入由字符组成,scanf可以将输入装换成整数或浮点值。使用%d或%f这样的说明符能限制可接受的输入的字符类型,

但是getchar()和使用%c的scanf()接受同样的任何字符;


getchar()只能输入字符型,输入时遇到回车键才从缓冲区依次提取字符.

如char ch;
ch=getchar();输入abc\r(回车)
ch=a;
用在循环时也要等有回车键时才接收.

char ch;
while((ch=getchar())!='q'){
printf("%c ",ch);

这样你可以输入很多字符后再按回车.
不用一个个按回输出,还是全部一起输出到屏幕
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值