我创建了一个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(¤t_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的新手。我探索但我无法找到写时间的功能,当我再次调用该函数时数据文本文件被删除
感谢您提前回复
答案 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(¤t_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(¤t_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; }