c语言backspace键的输入代表什么?

书上有道题说要编个程序把输入的东西输出,并且把输入的里面的backspace换成\b,但是backspace不是删掉前面的东西用的吗?这题目究竟怎么搞?

代表退格符\b。

1、\b是退格符。其中b是backspace的缩写。退格符的作用是使光标左移一格,上面标有向左的箭头“←” 是退格键。 退格键也叫回格键,每按一次可删除光标前的一个字符。ASCII码0x08,C程序输入可以用'\b'。

2、其他字符详见ASCII表:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-10-07
简言之,如果你使用 Linux, shell运行程序后键盘这样输入 Ctrl + h 可获得'\b'
C语言的发明者 Dennis Ritchie 写了一本叫做 The C Programming Language 的书,书里面有一道题(1-10)的一部分就是你的问题。
这道题的背景是,Linux 的 standard input 默认即键盘输入,standard output 默认即显示输出,之所以有 redirection 就是可以将这些标准输入输出转为文件输入输出。
这道题的原意是,比如我键盘按了 tab 键,显示器可能出来好几个空位,或者是文件中包含了 tab 键 redirection 到了显示器输出,光是从显示器肉眼是看不出来到底是多个空格还是一个 tab 键的。同理,ASCII 字符集或者是 Unicode 字符集,有很多这类 invisible 的不可见字符,包括 backspace 。如何将不可见字符转化为可见的或直观的表示,是这道题的原意。不可见字符那么多,都有数字编码对应,但转化为转义字符更为直观,这也是为什么只有少数的不可见字符拥有转义字符。
你可能遇到的困难是,直接输入了键盘上一个叫做 backspace 的键,显然几乎在任何程序里你直接造成了之前一个字符的删除。
幸运的是,在 shell 里,Ctrl-h 成了输入 backspace 字符的一个替代方案。
至于在其它系统其它程序如何输入,我想都有其方法的,Mac OS 有 bash,windows 的 cmd 或某些 IDE 是否可行我不知,我没有 Windows
我也是一个 C 语言的初学者,我学习 C 的目的是 Linux 业余编程,Unix/Linux 跟 C 是孪生兄弟,他们配合默契,希望对你们有用。
其实,更重要的,理解题目的主旨才是重要的
第2个回答  2013-01-27
意思是遇到backspace字符串的时候用/b替换,注意因为/b是转义字符,所以当你printf的时候不会输出,例如printf("s/b")的时候,光标会向前移动一位,要在屏幕上输出/b,就要printf("//b")这样写
第3个回答  2013-01-27
题目是说让你把输入的字符串中有backspace这一字符串的换成\b,例如,你输入的是sbackbackspacehi,只是让你输出sback\bhi而已,明白?
第4个回答  推荐于2017-09-02
backspace 光标左移1格。
如果有后继输出,就能覆盖掉一个字符,若无后继输出,不会用空白覆盖\b压着的字符。
例如:
char s1[10]="abcd\b";
char s2[10]="abcd\bD";
printf("s1: %s\n",s1); //输出 s1: abcd
printf("s2: %s\n",s2); //输出 s2: abcD追问

能把满足题目要求的代码顺便写出来吗?

追答

5小时以后再说,现在上班。

本回答被提问者和网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网