Как обновить значения в печатном виде только в C? - PullRequest
2 голосов
/ 13 мая 2019

Я хочу напечатать строку:

for(i=0;i<n;i++)
   printf("this is iteration number %d\n", i);

Из этого я получу вывод в виде:

это номер итерации 0

это номер итерации 1

...

Но я хочу, чтобы печаталась только одна строка и значение менялось.То есть я хочу перезаписать каждую строку.

Теперь, если я распечатаю какую-то другую строку (назовем это line2), но мне нужно перезаписать предыдущую строку, не затрагивая строку 2.

Ответы [ 2 ]

3 голосов
/ 13 мая 2019

Не самое изысканное решение, но вы можете использовать «возврат каретки» \r и сбросить stdout так:

#include <stdio.h>
#include <unistd.h>
int main() 
{
  for (int i = 0; i < 10; i++) {
      printf("\rValue of i is: %d", i);
      fflush(stdout);
      sleep(1);
  }
}
1 голос
/ 13 мая 2019

Вы можете использовать возврат каретки \r, чтобы вернуть курсор в начало строки, а затем перезаписать его в следующей итерации:

int n = 100;
for (int i = 0; i < n; i++) {
    printf("\rThis is iteration number %d", i);
    fflush(stdout);
    sleep(1);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...