我只想将其输入复制到其中
输出,用\t
替换每个标签
退格\b
,每个反斜杠
\\
。但是,我使用类似的方法
比如\t
替换每个标签不能
用\b
替换每个退格。怎么可能
我捕获退格?
#include<stdio.h>
main(){
int c;
char tab='t';
char bsps='b';
int i;
int j;
while((c=getchar())!=EOF)
{
if(c == 9)
{
putchar(92);
putchar(tab);
}
else if(c == 8)
{
putchar(92);
putchar(bsps);
}
else if(c == 92)
{
putchar(92);
putchar(92);
}
else putchar(c);
}
}
答案 0 :(得分:0)
您的计划是正确的。问题是它永远不会看到被“吃掉”的退格字符是你操作系统的行编辑方法。
您键入 A Basckspace B ENTER ,但您的程序只获得 B 输入
我编译了你的程序并用我的操作系统进行了测试。
首先是一个简单的测试
$ echo -e 'a\bc' | wc 1 1 4
这显示1个换行符,1个单词和4个字节。
然后运行程序
$ echo -e 'a\bc' | ./a.out a\bc