1.问题
编写一个输入复制到输出的程序,并将其中的制表符替换为
,回退符替换为,反斜杠替换为
\
。这样可以将他们以可见形式显示出来。
2.代码
#include <stdio.h>
int main(int argc, char *argv[]) {
int c;
while ( (c = getchar()) != EOF )
{
if ( c != ' ' && c != '' && c != '\' )
{
putchar(c);
}
else
{
if( c == ' ' )
printf("\t");
if( c == '' )
printf("\b");
if( c == '\' )
printf("\\");
}
}
return 0;
}
3. 问题
在Windows系统中,回退符Backspace不显示。查询资料后了解到getchar()
不能捕获到键盘输入Backspace
,改用为getch
可解决。
另外注意的一个点就是'\'
,输出的时候应该是\\
,反斜杠默认是用来转意的,在前面加一个反斜杠才表示字符。
- getchar
标准函数,从标准输入流获取一个字符 - getch
非标准函数,从键盘获取一个字符(与标准输入流不同且不回显[1])
↩︎@echo xxx (回显) 执行命令,输出 xxx echo xxx (不回显) 执行命令,输出 echo xxx ---- 执行回显则会把命令隐藏,反之显示