sprintf,不打印时间(0)和其他值
sprintf , do not printing time(0) and other values
我正在尝试打印时间戳和int值:543
我认为格式有问题,
char buffer [50];
sprintf (buffer, "Time : %d , ID %d",time(0),543);
它打印的时间戳是正确的,但ID是0
您正在使用%d打印time_t
,它假定time_t
是int
。这可能不是真的,它可能是另一种更大的类型——它甚至被允许是浮点类型,这会引起麻烦,因为你已经向printf承诺你要传递一个int。
没有printf格式说明符来打印time_t,但您可以将其强制转换并打印为long-long,这在使用64位或更少的time_t整数类型的平台上是可以的(这是大多数平台):
sprintf (buffer, "Time : %lld , ID %d",(long long)time(0),543);
更可取的方法是使用ctime
将time_t
转换为字符串并打印。
或者,您可以使用gmtime
或localtime
将所需信息从time_t
提取到struct tm
中,并从中打印成员,或者在struct tm
上进一步使用strftime
并将时间打印为字符串。
C标准规定time_t
是实数,因此它可以是整数或浮点值(C11:6.2.5.17)。因此,如果必须打印time_t
值,则可以使用%lld
(长-长)或%Lf
(长-双)进行打印。
相关文章:
- 如何循环打印顶点结构
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 为什么在popback()操作之后,它仍然打印完整的矢量
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 首先按给定顺序打印所有数字,然后使用 Array 打印所有字符和其他符号
- 我正在尝试为字符打印一些相应的值,但条件总是转到其他位置
- fprintf 不打印到文件,当文件指针在其他地方声明时
- 在 Eclipse 中漂亮的打印C++适用于某些项目,而不适用于其他项目
- 如何将文件打印到其他文件夹
- C++ 将文件中的数字读取到数组中,然后将其打印到其他数组中
- 在打印出动态分配的数组中的前两个数字时遇到问题,其他数字工作正常
- 如何使用Xcode中的Unicode打印字符╔(和其他字符)
- C GTEST在测试结束时仅在测试失败时打印其他信息
- 当一个线程希望执行或打印某个内容时,如何挂起其他线程
- sprintf,不打印时间(0)和其他值
- 我编写了一个C++程序来打印单词字母的排列.我想知道是否有其他更简单的方法可以做到这一点
- 我不能打印我的书的名字,但可以打印其他所有的东西
- 如果打印后输入整数,则C++分段故障,但其他情况下可以
- 通过杂注消息打印基于其他宏的定义数值?
- 如何在主窗口上打印来自其他类的消息(QString)