永发信息网

上一次您给我解决的有关字符型数据转化为十进制数据的问题,我还想问一下就是当字符超过两个之后不对了就

答案:2  悬赏:30  手机版
解决时间 2021-02-08 11:41
有一个问题就是下面的程序如果截取函数给str的只有两个字符,然后定义mmsi为int型输出显示都是正确的,但是当截取函数给str的字符数超过两个,就算我将mmsi定义成long型输出显示的也还是只是前两个字符的十进制,还有人说是在sprintf中将%u改为%lu,可是改过之后根本不对,改过之后不管mmsi是long型还是int型输出的数据都不对
void MMSI()
{
uchar str[5],sign;
uchar buf[9];
uint i,j;
unsigned long mmsi;
str[5]=jiequ(2,4); //截取函数表示从2是起始,4是截取的字符数,4个字符给str
sscanf(str, "%s", &mmsi);
mmsi=mmsi>>2&0x3fffffff; //只保留mmsi的0到29位
sprintf(buf, "%u", mmsi);
while(1)
{
lcd_pos(2,0);
for(i=0;i<6;i++)
{
lcd_wdat(buf[i]); //显示mmsi的十进制数在LCD
delay(5);
}
}
}
最佳答案
这个是一个原则性错误
str[5]=jiequ(2,4);
C语言不允许你这样写程序。
char str[5];
str[5]=XXXXX ;
这两行就足够被开除了,后面的不看也罢;
先学习基础知识吧。
jiequ不知道是个什么东西,但是无论如何都不会正确。
全部回答
我。。知。。道 加。。我。。私。。聊
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
伯承台球俱乐部在哪里啊,我有事要去这个地方
十月初五咖啡馆地址好找么,我有些事要过去
如图是反射弧模式图,请识图答问:(1)填出
福清办公家具厂在什么地方啊,我要过去处理事
nba2k onlineak47用升级橙色吗
一位女主叫莲心的名字
HORCRUX地址在什么地方,我要处理点事
笔记本鼠标驱动出问题怎么弄?我是笔记本新手
斗南恺盛农资地址有知道的么?有点事想过去
【杜拉拉升职记影评】《杜拉拉升职记》观后感
长颈鹿咖啡(黄县路店)地址有知道的么?有点事
先下三步台阶,再进客厅,风水如何
赛维健康洗衣·生活馆NSW-3896地址在哪,我要
啡悦时光咖啡馆怎么去啊,我要去那办事
怎么换群图片
推荐资讯
北海八华机电设备有限责任公司这个地址在什么
苏州学生医保一个月有多少钱?
使用天河一号做ddos的服务器能发动多少G的攻
DNF现在还有用星星换的那个装备了吗
利润表分析中,计算企业净利润的步骤应为()。
苏苑饭店我想知道这个在什么地方
谁有整本的爱枣的蔷薇啊 一定要全集的 我要看
45岁可以入户广州吗
方家铺子(解放大道)我想知道这个在什么地方
彼岸花开成海 此地荒草丛生这句话表达的是一
日语动漫歌曲 谐音是哪个呀咦呀咦 哪个呀咦呀
蚂蚁表演杂技
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?