| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1308 人关注过本帖
标题:关于sprinf的问题
只看楼主 加入收藏
baoxuhong198
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-5-19
结帖率:0
收藏
已结贴  问题点数:20 回复次数:7 
关于sprinf的问题
今天遇到一个比较郁闷的问题,我用sprintf把一个无符号整形数打印到一个数组中,然后再从串口输出,但输出的数据确实有符号的,上网查了下,sprintf是可以输出有符号的,测试程序如下(只贴了关键的片段),平台是stc单片机,8位的:
uint8 buff[50];
uint16 a;
a = 60000;
sprintf(&buff, "%d", a);
Send_String(&buff);/*单片机串口输出函数*/

以上输出结果是 -5535
然后我把a改成32767,输出就正常了,因为32767是int型的最大的数字,再试了32768,又输出-32768了,所以我的结论是sprintf只能输出有符号数,请问大家有没遇到类似的问题,求解答,谢谢
搜索更多相关主题的帖子: 最大的 
2013-05-19 15:09
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:4 
buff已经是数组了,为什么要&buff?

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-05-19 17:09
Ryker
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:145
专家分:420
注 册:2013-2-19
收藏
得分:4 
sprintf(&buff, "%d", a);

%d就是有符号的啊

如果无符号 ,用 %u
2013-05-19 17:15
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:4 
数组名即是地址了,指针

Maybe
2013-05-19 19:31
baoxuhong198
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-5-19
收藏
得分:0 
回复 2楼 pauljames
我传递的是一个指针,如果直接输入数组名,而不加&,可能会出问题,具体出什么问题我没仔细研究,不过最好加&,我是看一本书上这么写的,不知道原因,有谁知道可以解答下
2013-05-21 20:26
baoxuhong198
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-5-19
收藏
得分:0 
回复 3楼 Ryker
谢谢这位哥们的回答,刚测试了下,真的是可以的,谢谢
2013-05-21 20:49
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
收藏
得分:4 
单片机?那是????

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-05-22 22:58
xianyongqi
Rank: 2
等 级:论坛游民
帖 子:8
专家分:36
注 册:2013-5-17
收藏
得分:4 
我觉得楼主是不是记错了呢 数组名称本身就是一个地址  是该数组第一个元素的地址  你再加上& 不就是地址的地址了吗?
2013-05-22 23:50
快速回复:关于sprinf的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.047230 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved