#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
char c;
while((c =_getch()) != EOF)
{
if(c == '\t'){
printf("\\t");
}
else if(c == '\b'){
printf("\\b");
}
else if(c == '\\'){
printf("\\\\");
}
else {
putchar(c);
}
}
}
1问:检测到有制表符 替换不能用赋值操作么
答:不能,因为赋值只能放进去一个字
2问:printf里面为啥要加个斜杠
答:转义,要是只有一个斜杠,就还是输出的原始的tab
注:\b的那个用getchar()实现不了的,getchar()都是回车之后才读取,所以如果过程中你按了backspace按钮,实际上在操作系统这一层就把这个字符处理了,这样写的程序,看不到\b,所以需要用另一个函数_getch()