LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 899|回复: 4

《The C Programming》中的练习题 exam1-10

[复制链接]
发表于 2007-4-13 17:32:44 | 显示全部楼层 |阅读模式
题目的要求是用 \\ 代替 \,用 \t 代替一个TAB按键,用 \b 代替一个退格键(BkSp) 。
以下是我写的代码,不知道为什么就是不能实现用 \b 代替一个退格键。请教各位编程高手了。

  1. #include <stdio.h>

  2. main()
  3. {
  4.         int c;
  5.         c = 0;
  6.         printf("I can't replace BACKSPACE with \\b\n, what a shame!\n");
  7.         while ((c = getchar()) != EOF){
  8.                 if (c == '\t')
  9.                         printf("\\t");
  10.                 if (c == '\b')
  11.                         printf("\\b");
  12.                 if (c == '\\')
  13.                         printf("\\\");
  14.                 if (c != '\t' && c != '\b' && c != '\\')
  15.                         putchar(c);
  16.         }
  17. }

复制代码
发表于 2007-4-13 19:10:03 | 显示全部楼层
把getchar()换成getch()
回复 支持 反对

使用道具 举报

发表于 2007-4-18 19:03:28 | 显示全部楼层
在linux中\b并不是那个键盘主功能区的最右上角的那个左箭头退格键,那个键已经被解释成删除键了,在源文件中它不会被解释成任何代替的字符,所以你并不会看到一个\b,而是什么都没有,但在linux保留了一个退格键就是Ctrl-h,它的作用是把光标向回退一格但不删除字符,你自己可以在编辑器中试一下,所以如果你输入Ctrl-h就可以看到\b了!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-19 14:26:55 | 显示全部楼层
谢谢三楼的朋友了,有空是否可以多多交流啊??
回复 支持 反对

使用道具 举报

发表于 2007-4-19 21:44:26 | 显示全部楼层
Post by nico65
谢谢三楼的朋友了,有空是否可以多多交流啊??

呵呵,当然可以,不过我也只是一个新手,刚刚开始学c和unix不久,也在看K&R,只是恰巧了解到你碰到的问题,我也很愿意交流共同进步:)我的邮箱zz.kenshin@gmail.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表