我有这样的东西:

char *current_day, *current_time;
system("date +%F");
system("date +%T");

它在标准输出中打印当前的日期和时间,但我想得到这个输出,或者将它们分配给current_daycurrent_time变量,以便以后可以对这些值进行一些处理.

current_day ==> current day
current_time ==> current time

我现在能想到的唯一解决方案是将输出定向到某个文件,然后读取该文件,然后将日期和时间的值指定给current_daycurrent_time.但我认为这不是一个好办法.还有其他简洁优雅的方式吗?

推荐答案

使用time()localtime()获得时间:

#include <stdio.h>
#include <time.h>

int main()
{
  time_t t = time(NULL);
  struct tm tm = *localtime(&t);
  printf("now: %d-%02d-%02d %02d:%02d:%02d\n", tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec);
}

C++相关问答推荐

ATTiny1606定时器TCA 0中断未触发

为什么在Linux(特别是Ubuntu 20.04LTS)上,POSIX共享内存对象在重启后仍然存在,然后突然变成了根用户?

CC2538裸机项目编译但不起作用

在创建动态泛型数组时,通过realloc对故障进行分段

如何在C中使数组变量的值为常量?

在C中创建任意类型的只读指针参数

收到不兼容的指针类型警告,因为函数的返回不是空*,而是 struct 指针

我在C中运行和调试时得到了不同的输出

从BIOS(8086)中读取刻度需要多少?

如何在不读取整个字符串的情况下删除UTF8字符串的尾随空格以提高性能?

程序如何解释变量中的值

如何编写postgresql支持函数

Leet代码运行时错误:代码不会在Leet代码上编译,而是在其他编译器中编译,如netbeans和在线编译器

C语言中的指针和多维数组

在哪里可以找到叮当返回码的含义?

x86-64平台上的int_fast8_t大小与int_fast16_t大小

struct 中的qsort,但排序后的 struct 很乱

在 C 中传递参数时出现整数溢出

使用邻接表创建图

创建 makefile 来编译位于不同目录中的多个源文件