Почему sprintf () генерирует символ знака вопроса в качестве вывода? - PullRequest
3 голосов
/ 20 ноября 2019

Работая над встроенным проектом, я заметил, что метод 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.

Что здесь происходит не так?

...