【问题标题】:simple c program does not produce required output简单的 c 程序不会产生所需的输出
【发布时间】:2011-03-13 05:28:05
【问题描述】:

我正在使用下面的程序来打印当前时间

int main() 
{
  printf("%s",__TIME__);
  return 0;
}

它只适用于第一次。如果我在某个时间后运行它,它会再次给出相同的旧时间。

为什么我需要刷新时间?

【问题讨论】:

    标签: c time


    【解决方案1】:

    __TIME__ 是一个standard predefined macro,它扩展为一个字符串常量,描述运行预处理器的时间

    它在编译之前被预处理器替换。所以它不会随着不同的运行而改变。但是如果你重新编译你的程序,你会看到变化。

    要获取当天的当前时间,您可以使用 timelocaltimeasctime 函数:

    time_t rawtime;
    struct tm * timeinfo;
    
    time ( &rawtime );
    timeinfo = localtime ( &rawtime );
    printf ( "Current local time and date: %s", asctime (timeinfo) );
    

    【讨论】:

      【解决方案2】:

      __TIME__ 是由编译器设置的宏。由于它在编译时已修复,因此稍后运行程序不会更改输出。您可以调用gettimeofday()time() 甚至其他一些函数来获取运行时的时间/日期。 ctime() 及其相关函数可以为您生成更多有用的字符串。

      【讨论】:

        【解决方案3】:

        大家对__TIME__ 的看法是正确的。这是关于 ctime 库的链接。

        http://www.cplusplus.com/reference/clibrary/ctime/ctime/

        【讨论】:

        • 如果您想添加有关已经正确答案的更多信息,请尝试编辑当前帖子。
        猜你喜欢
        • 2023-03-22
        • 2018-06-04
        • 1970-01-01
        • 2016-11-12
        • 1970-01-01
        • 2020-05-14
        • 2023-03-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多