有点不明白这个题怎么放到这么前面,无赖只能查资料解决,先看最终程序:
#include <stdio.h>
/* 练习1-10
复制输入到输出,制表符换成\t,回退符换成\b,反斜杆换成\\。
按回车退出。
*/
main()
{
int c;
while((c = getch()) != 0x0d){
if(c==0x0) /* 如果是功能键就需要再调用一次getch(); */
getch();
if(c > 0x20) /* 如果ASCII码大于20h就是字符,打印(由于\要单独打印成\\,所以将\除外) */
if(c != 0x5c)
putch(c);
if(c == 0x08) /* 回退符 */
printf("\\b");
if(c == 0x09) /* 制表符 */
printf("\\t");
if(c == 0x5c) /* 反斜杆 */
printf("\\\\");
}
}
经过网上查资料发现一个getch()函数。至于为什么一些特殊功能键要调用两次getch();这个还需深究。
运行结果: