【发布时间】:2012-12-18 03:21:23
【问题描述】:
我正在尝试使用 sprintf() 为 C++ 中的 arduino 项目格式化 char 数组 我的目标是将以下整数格式化:日、月、年、小时、分钟和秒为以下
DD/MM/YYYY HH:MM:SS
当整数小于 10 时出现我的问题
sprintf (timeStr, "%c%u/%c%u/%u %c%u:%c%u:%c%u",(monthDay>0 && monthDay<=9)?'0':'',monthDay,(month>0 && month<=9)?'0':'',month,year,(hour>0 && hour<=9)?'0':'',hour,(minute>0 && minute<=9)?'0':'',minute,(second>0 && second<=9)?'0':'',second);
现在这不会编译,因为我得到“空字符常量”,我认为它来自 '' 没有合法值。
如果语句中的 %c 是有条件的并且我只想要一个值
如果有人对我如何实现这一点有任何见解,我将不胜感激,因为我真的坚持下去了!
谢谢!
【问题讨论】:
-
查找 printf 格式并使用类似 "%02d" 来指定宽度为 2 左填充 0。
-
如果 sprintf 不能工作,为什么不使用 strcat 代替,因为你不想在值