【问题标题】:print date on same line as other variables in printf [duplicate]在与 printf 中的其他变量相同的行上打印日期 [重复]
【发布时间】:2019-03-19 22:09:12
【问题描述】:

我正在尝试在printf 中使用system("date"),但我想在同一行使用它,但我不知道如何正确格式化它。有什么建议。

printf("Temperature %.2f date %d \n", val, system("date"));

【问题讨论】:

标签: c printf system


【解决方案1】:

system 函数返回给定外部命令的退出状态,如果成功,通常为 0。正在运行的特定命令在您的进程之外,因此您对其输出内容没有太多控制权。

您可以调用一些函数来获取所需信息,而不是调用外部命令。

您需要首先使用time 函数,它为您提供自 1970-01-01 00:00:00 UTC 的 UNIX 纪元以来的时间(以秒为单位)。然后将其传递给ctime 函数,它会为您提供时间的文本表示:

time_t t = time(NULL);
printf("date is %s", ctime(&t));

【讨论】:

  • ctime() 不是在结果后面加上换行符吗? ;-)
  • @alk 确实如此。如果你使用%.24s 修复它(这很常见),你刚刚引入了可怕的 y10k 错误。
  • @SteveSummit y10k bug 我不在乎。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-30
  • 2020-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多