c语言中putchar(getchar())的问题

#include<stdio.h>voidmain(){charc1,c2;c1=getchar;c2=getchar;putchar(c1);putchar(getch... #include<stdio.h>
void main()
{
char c1,c2;
c1=getchar;
c2=getchar;
putchar(c1);
putchar(getchar());
}
为什么我输入a,b
输出的是abPress any key to continue
而我输入ab
输出的是
a
Press any key to continue
展开
 我来答
蓝人poke
推荐于2018-03-09 · TA获得超过474个赞
知道小有建树答主
回答量:441
采纳率:0%
帮助的人:137万
展开全部
为什么我输入a,b:
实际上
c1=getchar;//此时c1=a
c2=getchar;//c2=,
putchar(c1);//输出a
putchar(getchar());//此时缓冲中有b没有被取出,getchar得到b,所以输出b,程序结束

而我输入ab
输出的是
a
c1=getchar;//c1得到a
c2=getchar;//c2得到b
putchar(c1);//输出c1,那就是a
putchar(getchar());//此时缓冲区还有一个回车,所以getchar得到回车,输出回车
铎玉枝邶月
2020-05-20 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:34%
帮助的人:696万
展开全部
第一个问题,为什么要两个getchar(),没有意义,一个和两个是一样的,getchar()每次只是接受一个字符,并不意味着只能输入一个字符,你输入多个字符,如果程序中有多个getchar,都可以被接受,这个程序就是这样的,通过一个循环实现多个输入。而这段程序的目的,通过一个一个字符的输入方式,写入文件中,并且以#结束。你说的那一段看不懂的地方,其实很简单,首先把已经输入的最后一个字符写入文件,并输出到屏幕上,接着继续输入,直到有一个字符为#为止。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
闽良庆汝
2019-06-21 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.3万
采纳率:29%
帮助的人:624万
展开全部
第一个getchar()是处理回车的吧,比如你输入
字符
a,
但是其实你输入的是
a和一个回车,不过这是不是必要的我不知道原作者怎么想的。
第二个更不用说了,进入了循环就准备在循环里接收字符了,所以加了一句ch=getchar();呗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
泉赫澹台依波
2020-03-25 · TA获得超过3859个赞
知道大有可为答主
回答量:3093
采纳率:30%
帮助的人:441万
展开全部
第一种写法,c永远是第一次输入的值
第二种写法,每次循环c都会读取下一个字符,才有机会遇到\n而终止。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sun_siliang
2012-03-08 · TA获得超过2.6万个赞
知道大有可为答主
回答量:9913
采纳率:100%
帮助的人:4512万
展开全部
//程序不能运行的,里面充满语法错误。改正后才会如你描述的那样。正确的程序如下:
#include<stdio.h>
void main()
{
char c1,c2;
c1=getchar();
c2=getchar();
putchar(c1);
putchar(getchar());
}
追问
我是手机输入,漏了两个(),请回归主题,解决主要矛盾
追答
你的括号,分号,逗号全是中文的。其他agalloch21回答得很好,多余的字符在键盘缓冲区,没有读到程序变量中来。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式