因为我还是C编程的新手,所以请多多包涵。当我运行此代码时:
#include <time.h>
#include <stdio.h>
#include <unistd.h>
int main(void)
{
while (1) {
time_t mytime;
mytime = time(NULL);
printf("%s Hello world\n", ctime(&mytime));
sleep(1);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出总是看起来像这样:
Wed Jan 18 02:32:32 2017
Hello world
Wed Jan 18 02:32:33 2017
Hello world
Wed Jan 18 02:32:34 2017
Hello world
Run Code Online (Sandbox Code Playgroud)
我想要的是这样的:
Wed Jan 18 02:32:32 2017 Hello world
Wed Jan 18 02:32:33 2017 Hello world
Wed Jan 18 02:32:34 2017 Hello world
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点 ?
注意:如果我将其删除\n,printf("%s Hello world\n", ctime(&mytime));则会得到以下结果:
Wed Jan 18 02:38:29 2017
Hello worldWed Jan 18 02:38:30 2017
Hello worldWed Jan 18 02:38:31 2017
Hello worldWed Jan 18 02:38:32 2017
Hello worldWed Jan 18 02:38:33 2017
Run Code Online (Sandbox Code Playgroud)
该ctime函数将返回指向以换行符结尾的字符串的指针。
从手册页:
该呼叫
ctime(t)等效于asctime(localtime(t))。它将日历时间t转换为以“ Wed Jun 30 21:49:08 1993 \ n”形式的空终止字符串。
如果您不想换行,则需要在打印之前保存指针并删除换行。
char *t = ctime(&mytime);
if (t[strlen(t)-1] == '\n') t[strlen(t)-1] = '\0';
printf("%s Hello world\n", t);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1190 次 |
| 最近记录: |