Что происходит, когда \t встречает \b в C?

Я знаю что \t а также \b имею в виду.
Но что будет, когда \b после \tи что будет когда несколько \b а также \t комбайн.
Посмотрите на этот код, он содержит различные комбинации \t а также \b:

printf("1\t1\t1\t1\n");
printf("---------------------------\n");
printf("1\t2\b\b3\n");
printf("\t\b1\n");

Я получил:

1       1       1       1
---------------------------
1      32
1

Два \b отображаются по-разному.
Результаты сбивают с толку, с моими имеющимися знаниями просто не могу объяснить.
Я не знаю как понять \t а также \b в конце.

1 ответ

printf("\b") отправляет символ возврата на стандартный вывод. printf("\t") отправляет символ табуляции на стандартный вывод. Что происходит оттуда до окружающей среды; Ваша программа не имеет никакого реального контроля над ней.

На типичном интерактивном устройстве вывода Backspace будет перемещать курсор на один столбец влево (не стирая ничего), а символ табуляции перемещает курсор на следующую остановку (также ничего не стирая). Это должно объяснить, что вы видите.

(На самом деле вывод, который я получаю, отличается от того, что вы нам показали, что заставляет меня думать, что в терминале, который вы используете, есть что-то другое, или вы неправильно расшифровали вывод.)

Другие вопросы по тегам