getchar()的作用

#include<stdio.h>#include<stdlib.h>intmain(){chars;intt,x,sum;scanf("%d",&t);getchar(... #include<stdio.h>
#include<stdlib.h>
int main()
{
char s;
int t,x,sum;
scanf("%d",&t);
getchar();
while(t--)
{
sum=0;
scanf("%c%d",&s,&x);
getchar();
if(s>='a'&&s<='z')
{
sum='a'-s-1+x;
}
if(s>='A'&&s<='Z')
{
sum=s-'A'+1+x;
}
printf("%d\n",sum);
}
return 0;
}
哪位大神解释一下这里面两个getchar的作用
展开
 我来答
见佛有真如c
高粉答主

2021-10-06 · 说的都是干货,快来关注
知道小有建树答主
回答量:4743
采纳率:100%
帮助的人:98.5万
展开全部

getchar是读入函数的一种。它从标准输入里读取下一个字符,相当于getc(stdin)。返回类型为int型,为用户输入的ASCII码或EOF。

它的作用是从stdin流中读入一个字符,也就是说,如果stdin有数据的话不用输入它就可以直接读取了,第一次调用getchar()时,确实需要人工的输入,但是如果输了多个字符,以后的getchar()再执行时就会直接从缓冲区中读取了。

getchar函数语法相关资料

(1)函数声明

int getchar(void)。

(2)参数

NA。

(3)功能

C 库函数int getchar(void)从标准输入 stdin 获取一个字符(一个无符号字符)。这等同于getc带有 stdin 作为参数。

(4)返回值

该函数以无符号 char 强制转换为 int 的形式返回读取的字符,如果到达文件末尾或发生读错误,则返回 EOF。

匿名用户
2015-07-16
展开全部
前面的scanf()在读取输入时会在缓冲区中留下一个字符'\n'(输入完num[i]的值后按回车键所致),所以如果不在此加一个getchar()把这个回车符取走的话,gets()就不会等待从键盘键入字符,而是会直接取走这个“无用的”回车符,从而导致读取有误。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wanglixin1001
2015-07-16 · TA获得超过4174个赞
知道大有可为答主
回答量:1758
采纳率:80%
帮助的人:882万
展开全部
应该是读取残留在输入缓冲区中的换行符。
你输入的时候按的enter键。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式