想法:
因为标准输入输出不能识别回退符(也就是backspace键),所以使用getch()函数,输入一行然后复制一行,直到遇到EOF
/* 输入复制到输出,制表符替换为\t,把回退符替换为\b,把反斜杠替换为\\ */
#include<stdio.h>
#include<conio.h>
static int print(int i);
int main(void)
{
int i = 1, j, ok;
int a[128] = { 0 };
while (1)
{
if ((a[i] = _getch()) == '\r' && ok == 1)
break;
if (a[i] == '\r')
ok = 1;
else
ok = 0;
print(a[i]);
if (a[i] == '\r')
{
j = 1;
while (j <= i)
{
print(a[j]);
j++;
}
i = 1;
continue;
}
i++;
}
return 0;
}
static int print(int i)
{
if (i == '\t')
{
putchar('\\');
putchar('t');
}
else if (i == '\b')
{
putchar('\\');
putchar('b');
}
else if (i == '\\')
{
putchar('\\');
}
else if (i == '\r')
putchar('\n');
else
putchar(i);
return 0;
}