【发布时间】:2019-03-19 22:09:12
【问题描述】:
我正在尝试在printf 中使用system("date"),但我想在同一行使用它,但我不知道如何正确格式化它。有什么建议。
printf("Temperature %.2f date %d \n", val, system("date"));
【问题讨论】:
-
system()并没有按照您的意愿去做。
我正在尝试在printf 中使用system("date"),但我想在同一行使用它,但我不知道如何正确格式化它。有什么建议。
printf("Temperature %.2f date %d \n", val, system("date"));
【问题讨论】:
system() 并没有按照您的意愿去做。
system 函数返回给定外部命令的退出状态,如果成功,通常为 0。正在运行的特定命令在您的进程之外,因此您对其输出内容没有太多控制权。
您可以调用一些函数来获取所需信息,而不是调用外部命令。
您需要首先使用time 函数,它为您提供自 1970-01-01 00:00:00 UTC 的 UNIX 纪元以来的时间(以秒为单位)。然后将其传递给ctime 函数,它会为您提供时间的文本表示:
time_t t = time(NULL);
printf("date is %s", ctime(&t));
【讨论】:
ctime() 不是在结果后面加上换行符吗? ;-)
%.24s 修复它(这很常见),你刚刚引入了可怕的 y10k 错误。
y10k bug 我不在乎。 :)