Dlaczego program nie odczytuje "backspace"?

0

Chciałbym prosić o podpowiedź dlaczego program odczytuje tabulator i ukośniki, ale backspace już nie.

Napisz program, który kopiuje znaki z wejścia na wyjście i zastępuje przy tym każdy tabulator znakami \t, każdy znak cofania (backspace) znakami \b i odwrócony ukośnik () znakami \. Zapewni to, że tabulatory i znaki cofania będą w danych wyjściowych widoczne i jednoznacznie rozpoznawalne.

Oto co napisałem

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int c;
    while((c = getchar()) != EOF){
        if(c == '\t')
            printf("\\t");
        if(c == '\b')
            printf("\\b");
        if(c == '\\')
            printf("\\\\");
        putchar(c);
    }

    return 0;
}
1

Czasami tak się dzieje (zależenie od kompilatora i środowiska w którym uruchamiasz program) że znaki takie jak Ctrl+C albo Backspace są ogarniane przez terminal, a nie przez program. Po drugie, lepiej gdybyś użył funkcji getch().

1

Zależne jest to od konsoli, po prostu jeśli zbuforuje nam dane, to możemy nie otrzymać informacji o edycji tych danych, tylko dane jakie zostały wprowadzone.

1 użytkowników online, w tym zalogowanych: 0, gości: 1