Я сталкиваюсь с этим упражнением KR 1-10:
Напишите программу, которая копирует ввод в вывод, заменяет каждую табуляцию на \t, каждый символ возврата на \b и каждую обратную косую черту на \\ .
Вот очень простое решение:
#include <stdio.h>
int main()
{
int c;
const char TAB = '\t';
const char BACKSPACE = '\b';
const char BACKSLASH = '\\';
while( EOF != ( c = getchar() ) )
{
if( TAB == c )
{
printf( "\\t" );
}
else if( BACKSPACE == c )
{
printf( "\\b" );
}
else if( BACKSLASH == c )
{
printf( "\\\\" );
}
else
{
putchar( c );
}
}
return 0;
}
Я обнаружил, что он работает нормально для визуализации Tab и \
(обратная косая черта), но не для Backspace. Похоже, что Backspace не запоминаются консолью? У меня убунту 14.04.
Это кажется похожей проблемой, но не совсем уверен это то же самое.
c
должно бытьint
, а неchar
. - person Spikatrix   schedule 29.08.2015