3317|2

68

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

scanf()函数的疑惑 [复制链接]

void change(char data *pr,char data *pt);

//c主程序声明
void main(void)
{   
    char data *a,*b,x,y;        //定义使用变量

   
    //设定串口的数据传输为1200bps 晶振为1600MHZ   
#ifndef MONITOR51
    SCON=0x50;        //SCON:8位异步通讯模式
    TMOD|=0x20;        //TMOD:定时器1为模式2,8-bit自动装载方式
    TH1=221;            //TH1:1200bps的装载值@16MHZ
    TR1=1;                //TR1:timer1运行
    TI=1;                  //T1:设置为1,以发送第一个字节
#endif


    printf("please input the number x,y\n");
    //puts(&x);
    //puts(&y);
    scanf("%d%d\n",&x,&y);
    //printf("please input the number y\n");
    //scanf("%d",&y);
    if(x     {
        *a=x;
        *b=y;
        change(a,b);
    }
    printf("max=%d\nmin=%d\n",*a,*b);
    printf("max=%d\nmin=%d\n",x,y);
    while(1)
    {;}

}

//数据交换函数声明
void change( char data *pr,char data *pt)
{
    char data temp;
    temp=*pr;
    *pr=*pt;
    *pt=temp;
    return;
}


程序指针问题
在程序运行后,在输入数据后,程序不能正确的计算。
在输入数据11<空格>12<回车>后程序不能运行,在回车,还是不能运行,等输入其他字符后"1"程序运行,但是运行结果不是
想要得到的,帮忙解决问题,谢谢

最新回复

KEIL里扩展出了 b,h,l来对输入字节宽的设置: b八位 h十六位 l三十二位 LZ少的是这个  详情 回复 发表于 2007-4-29 09:53
点赞 关注

回复
举报

72

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
主要问题是数据类型和指针运用不对,试试下面的代码应该可以实现你的目的

void main(void)
{   
    char data x,y;        //定义使用变量

    //设定串口的数据传输为1200bps 晶振为16MHZ   
#ifndef MONITOR51
    SCON=0x50;        //SCON:8位异步通讯模式
    TMOD|=0x20;        //TMOD:定时器1为模式2,8-bit自动装载方式
    TH1=221;            //TH1:1200bps的装载值@16MHZ
    TR1=1;                //TR1:timer1运行
    TI=1;                  //T1:设置为1,以发送第一个字节
#endif

    printf("please input the number x,y\n");
    //puts(&x);
    //puts(&y);
    scanf("%bd%bd",&x,&y);
    //printf("please input the number y\n");
    printf("x=%bd\ny=%bd\n",x,y);
    if(x     {
        change(&x,&y);
    }
//    printf("max=%d\nmin=%d\n",*a,*b);
    printf("max=%bd\nmin=%bd\n",x,y);
    while(1)
    {;}

}

//数据交换函数声明
void change( char data *pr,char data *pt)
{
    char data temp;
    temp=*pr;
    *pr=*pt;
    *pt=temp;
    return;
}
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
KEIL里扩展出了
b,h,l来对输入字节宽的设置:
b八位
h十六位
l三十二位

LZ少的是这个
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表