c试图将时间和日期传递给另一个函数

时间:2014-12-18 14:32:16

标签: c time

我试图将我从主函数调用的时间和日期传递给我的C程序中的另一个函数。

我试过保存当前时间&在一个字符中的日期尝试并通过它然而我得到无效的声明我相信是因为我试图在减速后将某些东西保存到数组中。

int main ()
{
  time_t f;
  struct tm * b;
  time(&f);
  b = localtime(&f);
  //char myTime [] = b;
  printf("Local time is %s \n", asctime(b));
}

void function2()
{
 //going to recieve time here for later use
}

我需要花时间运行程序,以便将其保存到文件中。

错误是:

错误:初始化程序无效

他们不应该采取另一种方式吗?我不必使用char,这是我想到的。不确定是否有更好的选择

2 个答案:

答案 0 :(得分:0)

这是我的解决方案。

#include "stdafx.h"
#include "time.h"

int _tmain(int argc, _TCHAR* argv[])
{
    time_t f;
    struct tm b;
    time(&f);
    localtime_s(&b, &f);
    //char myTime [] = b;
    char buffer[256];
    asctime_s(buffer, sizeof(buffer), &b);
    printf("Local time is %s \n", buffer);
}

答案 1 :(得分:0)

您可以将时间值传递给该函数,并使该函数将其保存在文件中。

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

int time2file(time_t t) {
    FILE *f = fopen("file.txt", "w");
    fprintf(f, "Some text: %ul\n", t);
    fclose(f);
    return 1;
}

int main() {
    printf("Hello, World!\n");
    time2file(time(NULL));
    return 0;
}

如果您需要以其他格式保存时间值,可以执行以下操作:

int time2file(time_t t){
    struct tm *b = localtime(&t);
    FILE *f = fopen("file.txt", "w");
    fprintf(f, "Local time is %s", asctime(b));
    fclose(f);
    return 1;
}

当然,您应该验证您是否确实打开了该文件以及其他错误,但我认为这超出了您的问题范围。