c语言中scanf 和getchar区别

在两个循环语句for(i=0;i<10;i++)scanf("%c",&ch[i]);和for(i=0;i<10;i++)ch=getchar();中输入同一个字符串12... 在两个循环语句
for(i=0;i<10;i++)
scanf("%c",&ch[i]);

for(i=0;i<10;i++)
ch=getchar();
中输入同一个字符串
1234567890
输出的ch[0]~ch[9];结果一样吗
如果输入的是带空格的如
1 2 3 4 5 6 7 8 9 0
结果又是什么养的
(scanf和getchar的内部运行过程是什么样的有什么区别,比如scanf中的空格表示一个字符串输入结束等等)
以上四个问题求解释
展开
 我来答
百度网友89e9dac
推荐于2017-10-13 · TA获得超过204个赞
知道答主
回答量:40
采纳率:0%
帮助的人:18.9万
展开全部
前两个问题输出结果是一样的。当然,ch=getchar();应改为ch[i]=getchar();带空格时,要把控制循环变量改为20;后面的问题应该是scanf(“%s”,str);与gets(str);的区别,此时,scanf中空格、回车、跳格都表示结束,而gets中为一个字符
wdghy123
推荐于2017-10-03 · TA获得超过1583个赞
知道大有可为答主
回答量:1514
采纳率:95%
帮助的人:737万
展开全部
  sanf和getchar的区别如下:
  使用scanf("%s",&s);函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理.
  getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
359284451
2012-05-18 · TA获得超过170个赞
知道答主
回答量:198
采纳率:0%
帮助的人:88万
展开全部
getchar 只能输入是字符,如果你输入的是数值的话,会转换为ASCII码字数输出。 #include<stdio.h>

main()
{ char p,i;
for(i=0;i<1;i++)
{
p=getchar();
}
printf("%d",p);
}
如你输入是1 ,则输出的是49 说明它就是ASCII码值。 再说了,你也不能够输入10个数,只能输入9个数。因为getchar()输入Enter键才把数给到了内存。再且,如你输入1234按Enter键的话,那它只把4存到内存里去。它只能存一个字符! 如果你是1 2 3 4这样的话,那你要算上空格键的数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wanglei980823
2012-05-18 · TA获得超过103个赞
知道小有建树答主
回答量:216
采纳率:0%
帮助的人:77.3万
展开全部
首先,不知道你用的是什么环境,环境变量怎么设置的,不过,你这个ch=getchar()语句有错误,你应该执行不了吧,scanf中的空格不表示结束,除非你重新定义过此函数,输入1234567890结果是一样的1234567890但是带空格只能输出0 1 2 3 4 5因为你的ch[i]只能存放10个字符,后面的那些没有存进数组。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式