Linguagem de Programação C, Ch.1 Exercício 1.10 (Getchar e Putchar)

Estou trabalhando nisso há 2 horas e estou preso ... Encontrei a resposta on-line, mas isso não vai me ajudar a aprender o conceito de que obviamente estou sentindo falta.

Pronto: Escreva um programa para copiar sua entrada para sua saída, substituindo cada guia por\t , cada backspace por\b e cada barra invertida por\\ . Isso torna as guias e os backspaces visíveis de maneira inequívoca.

Aqui está o que eu criei, ele não substitui umtab ou\ com o indicadoputchar, apenas adiciona na frente dele (não fiz backspace porque não posso realmente inserir um backspace ...):

É assim que eu leio o código. O que estou perdendo?:

"Existe algum número inteiroc. c é igual à entrada. Quando a entrada não for igual ao final do arquivo, continue. Se a entrada for tab, a saída\t. Se a entrada for\ então saída\\. Envie a entrada para o console ".

int c;

while((c=getchar())!=EOF)
{
    if(c=='\t')
        {
            putchar('\\');
            putchar('t');
        }

    if(c=='\\')
        {
            putchar('\\');
            putchar('\\');
        }
    putchar(c);
}

questionAnswers(4)

yourAnswerToTheQuestion