\b
и \r
редко используются на практике. Я только узнал, что неправильно понял эти две escape-последовательности. Простой тест:
printf("foo\bbar\n");
Я ожидал, что он выведет fobar
, потому что \b
будет возвращать курсор, а b
будет перезаписывать второй o
, но вместо этого он выдает: foobar
То же самое с \r
:
printf("foo\rbar\n");
Я думал, что \r
переместит курсор в начало текущей строки, поэтому bar
заменит foo
, поэтому окончательный вывод должен быть bar
. Однако он фактически выводит:
foo
bar