Cで目覚まし時計を書いていますが、新しい行を印刷せずにテキストの行を更新しようとしています。新しい行を印刷せずにテキストを更新するc
#include <stdio.h>
#include <time.h>
int main(int argc, char *argv[])
{
time_t timer;
char buffer[26];
struct tm* tm_info;
void delay(unsigned int mseconds)
{
clock_t goal = mseconds + clock();
while (goal > clock());
}
while(1){
time(&timer);
tm_info = localtime(&timer);
strftime(buffer, 26, "%Y-%m-%d %H:%M:%S", tm_info);
/* puts(buffer);*/
puts(buffer);
delay(1000);
}
}
これは、時刻と日付を印刷し、新しい行を印刷し続けると、同じ行のすべてを更新する方法がありますか?
'man puts'を読む:この関数は、常に新しい行を最後に追加します。 'fputs()'を使うべきです。 – DyZ
一部の端末では、「キャリッジリターン」(CR)または「\ r」はカーソルを行の先頭に移動します。しかし、それはどこでも動作しません。 –
[ANSIエスケープコード](https://en.wikipedia.org/wiki/ANSI_escape_code) – MateoConLechuga