This program copy its input to its output, replacing TAB(\\t
) by \\t
backspace(\\b
) by \\b
.
But here in my code I am una
If I haven't misinterpreted the question, you may use 'Ctrl-H' to send a backspace. Using trojanfoe's corrected code, when you type:
vinay^H
It will print:
vinay\b
^H means 'Ctrl-H', it's ASCII character #8, which is backspace.
The backspace is consumed by the shell interpreter, so your program will never see it, also your code is (slightly) broken, due to misplaced braces, not helped by the poor indentation.
Here is a corrected version:
#include<stdio.h>
int main(void)
{
int c=0;
while((c=getchar())!=EOF){
if(c=='\t')
printf("\\t");
else if(c=='\b')
printf("\\b");
else
putchar(c);
}
putchar('\n');
return 0;
}
which works as expected:
$ echo 'vinay\thunachyal\b' | ./escape
vinay\thunachyal\b