라인의 시작 부분으로 커서를 뒤로 밀어 복귀를 사용 ... (악마의 창을 사용하여 SetConsoleCursorPosition()
부르지 만 수행 트릭)
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void gotoxy(int x, int y);
int main()
{
while (1) {
time_t rawtime;
struct tm * timeinfo;
gotoxy(0,0);//set to the upper left hand corner
time (&rawtime);
timeinfo = localtime (&rawtime);
printf ("%s", asctime (timeinfo));
fflush(stdout);
}
return 0;
}
void gotoxy(int x, int y)
{
COORD pos = {x, y};
HANDLE output = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(output, pos);
}
는 POSIX이 시도 :
#!/usr/bin/tcc -run
#include <stdio.h>
#include <termios.h>
int main()
{
struct termios ts0, ts1;
char cls [FILENAME_MAX];
FILE *f;
f = popen ("tput clear", "r");
fgets (cls, FILENAME_MAX, f);
pclose (f);
tcgetattr (0, &ts0);
ts1 = ts0;
ts1.c_lflag &= ~ECHO;
ts1.c_lflag &= ~ICANON;
tcsetattr (0, TCSAFLUSH, &ts1);
fputs (cls, stdout);
while (1) putchar (getchar());
tcsetattr (0, TCSAFLUSH, &ts0);
return 0;
}
fflushfflush는 stdoutstdout에 쓰는 내용이 실제로 표시되는지 확인합니다. 화면을 지우는 것과 아무런 관련이 없습니다. '\ r'을 사용하여 문자열 앞에 줄을 써서 같은 줄에 출력을 다시 쓸 수 있습니다. –
화면을 지우려면 코드를 작성하여 화면을 지워야합니다. C는 사용자가 화면이 있거나 그것이 지워질 수 있다고 가정하지 않으므로, 사용자가 가지고있는 특정 플랫폼이나 터미널에 적합한 방식으로해야합니다. –