getchar和scanf的区别

2022-08-19 科技 98阅读
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);
这样你可以输入很多字符后再按回车.
不用一个个按回输出,还是全部一起输出到屏幕
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com