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

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

我不太清楚如何才能消除这两个警告,请问谁能指点一下? 谢谢
...全文
683 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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%%即可以
总结一下FFT和维纳辛钦定理求解PSD的问题-功率谱图.rar 早上在论坛上问了两个问题, 一个是关于FFT求频谱时纵坐标的值问题 https://www.ilovematlab.cn/thread-27092-1-1.html 还有一个是用维纳辛钦定理求解PSD时出现的问题 https://www.ilovematlab.cn/thread-27133-1-1.html 经过达人们的指点,和自己的总结,获得一点心得,在这里与大家分享一下:) 1.FFT求频谱 [CODE] Fs = 40; n = 0:1/Fs:159*1/Fs; x = sin sin; N = length; X = fftshift); Px1 = X.*conj/N; plot*Fs/N,Px1); grid on; axis title; 首先,fftshift的问题,以前上数字信号处理时,老师专门给提出了这个函数,但是我发现论坛里好多不太明白这个函数意义的,OO~,一般,fft得到的是频谱范围在【0-2*pi】范围内的频谱,以高频pi为中心,但是一般使用过程中,使用的频谱习惯以低频0为中心,fftshift的功能就是将频谱进行移位,使之在【-pi,pi】之间; 另外,纵坐标的问题,版主edifier2008提示说用/N的方法归一化,我试了一下,每次采样长度变大时,纵坐标的整体值都会变大,/N之后,值变为1之内了,但是并不是理论算法中得到的1. 图形如下: fft.jpg fft 2.维纳辛钦定理求解功率谱的问题 [CODE] Fs = 40; n = 0:1/Fs:159*1/Fs; x = sin sin; N = length; Rx = xcorr; Px2 = fftshift); plot*Fs/,abs); grid on; axis title; 图形如下: fftwei.jpg 程序中可以看出,也要使用fftshift对fft得到的频谱进行移位以得到以低频0为中心的频谱,另外,得到的功率谱纵轴值特别大,是不是也需要除以采样长度,我试了一下,仍然是很大,个人认为,在MATLAB中计算自相关函数以及计算FFT时,都没有对加和进行归一,将/N这一个系数可能都给省略掉了。 此外,我在很多教材里面看了不少里面的例题,都没有注意纵轴值的问题,我觉得在进行频谱分析,重点在于频率点,以及相近频率点的谱图是不是能够分辨出来,而对于各谱的大小,有个相对的比较即可。 不当之处,还望大家给与指正,:) :victory:

70,020

社区成员

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

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