在处理嵌入式项目时,我注意到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;
};
以上都是针对 VS Code使用C/C++ 和Platform.io扩展。
这里出了什么问题?