Я делаю упражнение K & R 1-10
Напишите программу, чтобы скопировать ее входные данные на свой выход, заменив каждую вкладку на \t
, каждую клавишу возврата на \b
и каждую обратную косую черту на \\
. Это делает вкладки и символы возврата видимыми однозначно.
Я придумал это ...
#include <stdio.h>
int main () {
int c;
printf("\n"); // For readability
while ((c = getchar()) != EOF) {
switch (c) {
case '\t':
printf("\\t");
break;
case '\b':
printf("\\b");
case '\\':
printf("\\");
break;
default:
printf("%c", c);
break;
}
}
}
По какой-то причине он отказывается коснуться обратной косой черты. Например, выходные данные из программы при подаче строки, такой как Hello how\ are you?
, равны Hello\thow\ are you?
, что означает, что она преобразует вкладку ОК, но не обратный слеш.
Я что-то не так делаю?