在文本文件中插入时间有问题。我使用下面的代码,得到|21,43,1,3,10,5| Wed Feb 01 20:42:32 2012
这是正常的,但我想做的是将时间放在数字之前,例如Wed Feb 01 20:42:32 2012 |21,43,1,3,10,5|
但是,我不能这样做,因为当我在fprintf之前使用带ctime函数的fprintf时,它会识别ctime中的数字,因此它会首先更改行,然后打印数字。就像是:
Wed Feb 01 20:42:32 2012
|21,43,1,3,10,5|
这是我不想要的…我怎样才能在不刷到文本下一行的情况下打印时间???提前谢谢!
fprintf(file," |");
for (i=0;i<6;i++)
{
buffer[i]=(lucky_number=rand()%49+1); //range 1-49
for (j=0;j<i;j++)
{
if (buffer[j]==lucky_number)
i--;
}
itoa (buffer[i],draw_No,10);
fprintf(file,"%s",draw_No);
if (i!=5)
fprintf(file,",");
}
fprintf(file,"| %s",ctime(&t));
最佳答案
您可以使用strftime()
和localtime()
的组合来创建时间戳的自定义格式字符串:
char s[1000];
time_t t = time(NULL);
struct tm * p = localtime(&t);
strftime(s, 1000, "%A, %B %d %Y", p);
printf("%s\n", s);
ctime
使用的格式字符串只是"%c\n"
。关于c - fprintf和ctime而不从ctime传递\n,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9101590/