getchar()函数的用法

charstr[100]={0};printf("输入n",);scanf("%d",&n);getchar();for(i=0;i<n;i++)str[i]=getch... char str[100]={0};
printf("输入n",);
scanf("%d",&n);
getchar();
for(i=0;i<n;i++)
str[i]=getchar();
printf("输出m:");
scanf("%d",&m);
printf("%s\n",str+m-1);
问题1:请问str[i]=getchar();是什么意思????getchar()不是识别回车的么?这是什么用法?
问题2:printf("%s\n",str+m-1);这个语句str+m-1是什么意思?语句printf("%s\n",str+m-1)意思是输入字符从i=0开始 直到str+m-1吗???
展开
 我来答
__SOS__求解
2014-02-09
知道答主
回答量:10
采纳率:0%
帮助的人:1.4万
展开全部
不是识别回车的,getcher是输入字符,str【i】=getchar是从键盘是输入字符给str数组
不是,要看m还有没有在其他地方出现过,如果就这样的话是输出str数组的下标为0+m-1的里面的内容
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
随枫轻逝
2011-04-16 · 超过28用户采纳过TA的回答
知道答主
回答量:165
采纳率:0%
帮助的人:96.4万
展开全部
getchar每次是只取出一个字符的 这个程序之所以可以输入字符串 是因为用了while的关系
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秒懂百科
2019-12-27 · TA获得超过5.9万个赞
知道大有可为答主
回答量:25.3万
采纳率:88%
帮助的人:1.2亿
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友98c8a11
2008-09-12 · TA获得超过1172个赞
知道小有建树答主
回答量:261
采纳率:0%
帮助的人:440万
展开全部
先看下下百科的解释:
功 能: 从stdin流中读字符
用 法: int getchar(void);

getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符.getchar函数的返回值是用户输入的第一个字符的ASCII码.

然后:1.键盘缓冲区可能不为空:这样getchar()可能得到的不是本次输入的字符甚至可能不会等待你的输入而执行下一条语句;当然,也就可能不是输入的第一个字符
2.返回值是用户输入的第一个字符的ASCII码,也就是int型,不存在其他类型匹配的问题

举个例子:连续使用两个getchar()函数,在第一个函数执行时输入abc,然后回车,则第一个函数返回值是a的ASCII码,而第二个函数不等待输入而返回b的ASCII码。如此!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
春天交响
2008-01-29 · TA获得超过172个赞
知道答主
回答量:86
采纳率:0%
帮助的人:0
展开全部
getchar()是在输入缓冲区顺序读入一个字符(包括空格、回车和Tab)。
所以你在输入“12”回车后,“1”首先被读入,“2”和回车还在输入缓冲区里,被后面的getchar()依次读入。所以有这样的运行结果。
这是getchar()使用的不方便的地方。解决方法:
(1)使用下面的语句清除回车:
while(getchar()!='\n');
(2)用getche()或getch()代替getchar(),其作用是从键盘读入一个字符(不用按回车),注意要包含头文件<conio.h> 。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式