在文本文件中插入时间有问题。我使用下面的代码,得到|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/

10-11 21:13