请达人们指点一下!!!!!!

hansl 2007-05-15 10:30:49
viod main()
{
char buff[30];
unsigned char SimCapacity = 0;

sprintf(buff, "消息状态\nSIM卡:%d%\n", SimCapacity);


}

我在编译的时候 编译器报出这样的两个警告,
一个是: unknown conversion type character 0xa in format
另一个是:spurious trailing ‘%' in format

我不太清楚如何才能消除这两个警告,请问谁能指点一下? 谢谢
...全文
569 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiantongyuan 2007-05-15
  • 打赏
  • 举报
回复
第一个是因为汉字的原因
第二个是因为精度的原因吧,你的字符数组是char,而你的变量是unsigned char;
amei_zhang83 2007-05-15
  • 打赏
  • 举报
回复
楼上的是正确的吧!
我也试了下!
bargio_susie 2007-05-15
  • 打赏
  • 举报
回复
就是象todototry(来csdn,学会扯淡了...) 说的那样的。。。
很奇怪你的显示!!!你用的什么编译器??
以下是在VC6.0下试的。
显示:消息状态
SIM卡:0%
#include <stdio.h>
int main()
{
char buff[30];
unsigned char SimCapacity = 0;

sprintf(buff, "消息状态\nSIM卡:%d%%\n", SimCapacity);
puts(buff);

return 0;
}
hansl 2007-05-15
  • 打赏
  • 举报
回复
加了两个%% 警告都没有了, 就是显示出现了 0%%
跟我预想的 0% 不一样了
hansl 2007-05-15
  • 打赏
  • 举报
回复
可是加了两个%%,怎么最后显示也是两个%%?
todototry 2007-05-15
  • 打赏
  • 举报
回复
unknown conversion type character 0xa in format
========================
这个报在哪行
todototry 2007-05-15
  • 打赏
  • 举报
回复
如果照你这样改的话sprintf(buff, "消息状态\nSIM卡:%d%%\n", SimCapacity);
打印出来变成了 消息状态
nSIM卡: 0%%
又多了一个“%”,是不是我加的不对?
====================================
想显示%
就得两个%%
hansl 2007-05-15
  • 打赏
  • 举报
回复
如果照你这样改的话sprintf(buff, "消息状态\nSIM卡:%d%%\n", SimCapacity);
打印出来变成了 消息状态
nSIM卡: 0%%
又多了一个“%”,是不是我加的不对?

还有第一个警告是什么意思? 怎样才能消除?
todototry 2007-05-15
  • 打赏
  • 举报
回复
%d%%即可以

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧