第一次用scanf一直不对,紧急求助!

2020-02-05 09:11发布

各位大侠麻烦看一下,我这个程序

/***********************/
#include <reg52.h>
#include <stdio.h>

void main()
{
        unsigned int a,c;
        SCON = 0x50;
        TMOD = 0x20;
        TH1  = 0xe8;
        TL1  = 0xe8;
        TI=1;
        TR1  = 1;
        while(1)
        {
        scanf("%u",&a);
        c=a+10;
        printf("%u ",c);       
        }
}

不知道为什么,输出的还是原来a的值,而不是+10后的值!

先谢了!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
automaticdai
1楼-- · 2020-02-07 08:38
楼主能不能把详细情况再描述一下。
包括:
楼主使用的编译器;
去掉scanf,printf的行为是否正常;
如果去掉printf,串口是不是还会有输出;
你的程序能执行多次么,还是每发送一个字符必须复位?
其实很少有人能回答你,因为大家尽量不会去用scanf函数,在不同的C编译器实现下,它的行为可能会有区别。而且scanf和print都是死等方式,是要尽量避免的。
03751262
2楼-- · 2020-02-07 09:45
用的KEIL,去掉scanf,printf的行为正常;去掉printf,串口还会有输出;
automaticdai
3楼-- · 2020-02-07 13:54
去掉printf,串口还会有输出
这你不觉得奇怪么?
03751262
4楼-- · 2020-02-07 18:52
就是奇怪我才一直在想为什么,我花了快7个小时都没有找到原因,说实话串口我用的挺熟的,就是第一次用scanf,谢谢“automaticdai”,以后我不用scanf
automaticdai
5楼-- · 2020-02-07 19:25
 精彩回答 2  元偷偷看……

一周热门 更多>