用C语言进行字符串格式化操作的时候经常会使用sprintf/snprintf这两个函数,但这两天在使用Arduino IDE进行8266开发的时候却碰到了一个浮点数字符串打印小问题。

问题代码

  char buffer[128];
  float num = 1.0;
  
  ...
  
  memset(buffer, 0, sizeof(buffer));
  snprintf(buffer, sizeof(buffer), “%f”, num);
  Serial.println(buffer);

实际运行并没有按照以往认为的方式将浮点数输出出来

  snprintf(buffer, sizeof(buffer), "%d.");