我试着用C语言制作一个时钟,但是屏幕没有完全清空,只是一直在打印到一个新的行。如何不正确地使用fflush
?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
while (1) {
time_t rawtime;
struct tm * timeinfo;
time ( &rawtime );
timeinfo = localtime ( &rawtime );
printf ("%s", asctime (timeinfo));
fflush(stdout);
}
return 0;
}
最佳答案
这将从asctime字符串中去掉换行符,然后使用回车键将光标推回到行首
#include <string.h>
int main()
{
while (1) {
time_t rawtime;
char st[30];
struct tm * timeinfo;
time ( &rawtime );
timeinfo = localtime ( &rawtime );
sprintf (st,"%s", asctime (timeinfo));
*(index(st,'\n'))='\0';
printf("\r%s",st);
flush(stdout);
sleep(1);
}
return 0;
}
关于c - 使用fflush的时钟无法清除屏幕,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19602930/