Как я могу использовать printf ("\ b"), чтобы вывод моей консоли выглядел как пишущая машинка? - PullRequest
2 голосов
/ 21 октября 2019

Я использую цикл для удаления символов из строки, используя printf (\ b) 1 на 1 и засыпая 0,1 секунды между ними. Но когда я запускаю код, это происходит одновременно.

Я буквально пытался набрать каждый printf, потому что думал, что причиной может быть цикл, но тем не менее, вывод был таким же

#include <stdio.h>
#include <unistd.h>

void coolIntro(){
int i;

printf("A Game by Hideo Kojima");

Sleep(800);

for(i=0;i<12;i++){

    printf("\b");

    Sleep(100);

        }

printf("my_name_here");
}

Я хочубуквы исчезают с интервалом 0,1 секунды.

1 Ответ

5 голосов
/ 21 октября 2019

printf выход буферизуется. Используйте fflush(stdout) для немедленного вывода. Кроме того, \b перемещает курсор влево, но не стирает символ под курсором. Напечатайте "\b \b", чтобы переместить его назад, напечатайте пробел, а затем верните его снова.

printf("\b \b");
fflush(stdout);
...