该程序将其输入复制到其输出,用backspace()替换TAB(\t).但是在我的代码中,当我输入退格键时,我无法读取输入字符,因为选项卡不起作用.\t\b\b
在Linux中使用GCC进行编译:
#include<stdio.h>
int main(void)
{
int c=0;
while((c=getchar())!=EOF){
if(c=='\t'){
printf("\\t");
if(c=='\b')
printf("\\b");
}
else
putchar(c);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
假设我输入vinay(tab)hunachyal
Output:vinay\thunachyal
Run Code Online (Sandbox Code Playgroud)
如果我输入vinay(和1个退格)
Output:vina
Run Code Online (Sandbox Code Playgroud)
所以我的疑问是为什么vina\b在这种情况下不打印?
是否可以检测\b和打印\b?如果不是什么原因
Note: 我需要在运行时输入退格键不提供单独的文件\ b
退格程序由shell解释程序使用,因此您的程序将永远不会看到它,您的代码也会(略微)被破坏,因为错误的缩进而没有帮助.
这是一个更正版本:
#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;
}
Run Code Online (Sandbox Code Playgroud)
它按预期工作:
$ echo 'vinay\thunachyal\b' | ./escape
vinay\thunachyal\b
Run Code Online (Sandbox Code Playgroud)