在处理嵌入式项目时,我注意到以下代码的sprintf()
方法:
char ln2[16];
sprintf(ln2,"%f Volt",Data[Position].Voltage1);
生成问号字符作为输出。
上面的代码生成的输出是:
? Volt
当输入被声明为double Voltage1 = 0.0;
尝试格式化整数时,似乎没有相同的问题。
预期效果如下:
char ln1[16];
sprintf(ln1,"POSITION %d",(Position + 1));
并输出POSITION 3
,其中Position
是全局变量,并声明为int
。
实际保存数据的结构是:
struct data
{
int Position;
double Voltage1;
double Voltage2;
};
使用C/C++时的所有操作 和Platform.io扩展都适用于VS Code。
这是怎么回事?