永发信息网

我用vc6打c语言程序 #include<stdio.h> int main() [ primtf("h\n"); return 0:

答案:2  悬赏:50  手机版
解决时间 2021-04-01 00:40
我用vc6打c语言程序 #include<stdio.h> int main() [ primtf("h\n"); return 0:
最佳答案
这个程序没错,运行结果也是合情合理的,只不过不是你预期的,那是因为你没有理解输入输出流的概念,重点是这个流的含义,以及没有理解某些特殊字符,比如回车和换行。

你这个程序2次循环,每一次循环输入两个字符,然后分别打印2个字符。
但是你忽略了回车,你每一次输入2个字符之后,要按一下回车字符,而scanf读取2个字符,那么按下的回车并没有被读取,直到下一次循环时回车才会被读取。
所以第二个循环的时候,假如你输入了 x y 回车。 那么实际上a和b存入的值是 a = 回车 b = ‘x'。

注解:
键盘输入的任何数据,都按顺序一个一个排好队等待程序读取,这个队就是输入流。你按下了,如果程序没有读取,则数据一直在那里等待。 你输入 “12回车” 输入流的数据如下

’1‘,’2‘, ’\r‘ 。。
所以'\r'会干扰你的下一次循环。scanf 参数如果是 %c 表示一次从输入流取一个字符。

回车和换行都是特殊字符,回车 = ’\r‘ 换行 = '\n' .

改一下程序实现你要的效果,如下。

#include
int main()
{
int i;
char a,b,n;
for (i=1;i<=2;i++)
{
scanf("%c%c%c",&a,&b,&n);
printf("a=%c,b=%c,enter=0x%X\n",a,b,n);
}
printf("enter any key to exit !!\n");
getchar();
return 0;
}
全部回答
把你的中括号“[]”换成大括号“{}”,return 0后面的冒号“:”换成分号“;”追问谢谢说得对
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
工行小e,基金TA账户的问题,98中登和99中国证
250W电源怎么配显卡
京东新用户怎么用手机激活京东白条
详解阳台排水管道的设计要求有哪些
熟铁经火烧后冷了能变软吗
我在做零投资代理,朋友也想做,我是把厂家介
VSEPR理论N原子提供几个电子
阅读【提醒】的阅读答案
青椒的特点或营养都有哪些
怎么把人人和微信绑定起来
半个月没查到违章是不是就没事了
小狗胀肚怎么办
百世汇通问题件什么意思
恋爱不到5分钟就失恋,求大鹏的心理阴影面积
尼采的哪本书最好?
推荐资讯
伊川县洛阳成记烧烤我想知道这个在什么地方
いる是什么意思
什么是校园文化?主要通过哪些要素表现出来?
范世琪张檬一起参加的节目
灵异黑寡妇和如意鸟两款便宜的机械键盘哪个好
什么叫挂网职称
《六祖坛经说什么》功德不在修福中求,佛教网
挖一条长1500米的引水渠,水渠横断面是一个梯
除了液槽式送风口还有哪种类型的送风口
女孩跟男孩说他很有杀伤力,是什么意思??
女人胖一点好还是瘦一点好
五行属性土的草字头汉字
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?