制表符、回退符、反斜杠替换为其命令字符形式输出

1.问题

编写一个输入复制到输出的程序,并将其中的制表符替换为\t,回退符替换为\b,反斜杠替换为\\。这样可以将他们以可见形式显示出来。

2.代码

#include <stdio.h>

int main(int argc, char *argv[]) {
	
	int c;
	
	while ( (c = getchar()) != EOF )
	{
		if ( c != '\t' && c != '\b' && c != '\\' )
		{
			putchar(c);	
		}
		else
		{
			if( c == '\t' )		
				printf("\\t");
			if( c == '\b' )
				printf("\\b");  
			if( c == '\\' )
				printf("\\\\");  
		}
	}
	 
	return 0;
}

3. 问题

在Windows系统中,回退符Backspace不显示。查询资料后了解到getchar()不能捕获到键盘输入Backspace,改用为getch可解决。
另外注意的一个点就是'\\',输出的时候应该是\\\\,反斜杠默认是用来转意的,在前面加一个反斜杠才表示字符\

  • getchar
    标准函数,从标准输入流获取一个字符
  • getch
    非标准函数,从键盘获取一个字符(与标准输入流不同且不回显[1]

参考1


  1. @echo xxx (回显) 
    执行命令,输出 xxx
    echo xxx (不回显)
    执行命令,输出 echo xxx
    ----
    执行回显则会把命令隐藏,反之显示
    
    ↩︎
posted @ 2019-07-06 16:09  Chanmoo  阅读(1323)  评论(0)    收藏  举报