当用c语言调用函数时,如何重复写入文本文件

时间:2014-09-25 16:22:00

标签: c

我创建了一个c程序,这样当调用特定函数时,它应该创建文本文件,c / some foldername / log文件中的路径。调用和终止函数的时间,日期将存储在文本文件中。我尝试过以下代码。

function() {
    FILE *fp;
    char ch;
    time_t current_time;
    char* c_time_string;

    /* Obtain current time as seconds elapsed since the Epoch. */
    current_time = time(NULL);

    if (current_time == ((time_t)-1))
    {
        (void) fprintf(stderr, "Failure to compute the current time.");
        return EXIT_FAILURE;
    }

    /* Convert to local time format. */
    c_time_string = ctime(&current_time);

    if (c_time_string == NULL)
    {
        (void) fprintf(stderr, "Failure to convert the current time.");
        return EXIT_FAILURE;
    }


    fp=fopen("C:\\X2.6\\X_LogFiles\\file.txt","w"););

    /* Print to stdout. */

    while((ch=getchar())!=EOF)
    putc( c_time_string,fp);
    fclose(fp);

   return 0;
}

我是c的新手。我探索但我无法找到写时间的功能,当我再次调用该函数时数据文本文件被删除

感谢您提前回复

2 个答案:

答案 0 :(得分:0)

您的文件中的数据将被删除,因为您正在以写入模式打开文件(fopen()命令中的“w”)

    fp=fopen("C:\\X2.6\\X_LogFiles\\file.txt","w"); 

每当您以“w”模式打开文件时。如果该文件不存在,则将创建该文件。但是如果文件存在文件将被清空,其所有数据都将被删除然后打开

如果要将(添加到现有文件中)附加到文件,则应使用“a”代替“w”。如果文件不存在,附加模式将创建该文件。但是如果文件在那里,那么它只是打开来向它添加(追加)数据

答案 1 :(得分:0)

使用printf将时间写入文件。

printf(file_descriptor, "control_String");

这里将是

printf(fp," %s\n", asctime (current_time) );

也会以附加模式a

打开文件
fFILE *fp;
char ch;
time_t current_time;
char* c_time_string;

/* Obtain current time as seconds elapsed since the Epoch. */
time(&current_time);

if (current_time == ((time_t)-1))
{
    (void) fprintf(stderr, "Failure to compute the current time.");
    return EXIT_FAILURE;
}

/* Convert to local time format. */
c_time_string = ctime(&current_time);

if (c_time_string == NULL)
{
    (void) fprintf(stderr, "Failure to convert the current time.");
    return EXIT_FAILURE;
}


fp=fopen("C:\\X2.6\\X_LogFiles\\file.txt","a"););

/*changed here*/

fprintf(fp,"%s",c_time_string);


fclose(fp);

返回0; }