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中的空格表示一个字符串输入结束等等)
以上四个问题求解释 展开
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中的空格表示一个字符串输入结束等等)
以上四个问题求解释 展开
4个回答
展开全部
sanf和getchar的区别如下:
使用scanf("%s",&s);函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理.
getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).
使用scanf("%s",&s);函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理.
getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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这样的话,那你要算上空格键的数。
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这样的话,那你要算上空格键的数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先,不知道你用的是什么环境,环境变量怎么设置的,不过,你这个ch=getchar()语句有错误,你应该执行不了吧,scanf中的空格不表示结束,除非你重新定义过此函数,输入1234567890结果是一样的1234567890但是带空格只能输出0 1 2 3 4 5因为你的ch[i]只能存放10个字符,后面的那些没有存进数组。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询