【发布时间】:2017-01-30 08:39:43
【问题描述】:
K&R C 1-10 内容如下:
“编写一个程序将其输入复制到其输出,将每个制表符替换为 \t,每个退格符替换为 \b,每个反斜杠符替换为 \。这使得制表符和退格符以明确的方式可见。”
我有以下代码,它不适用于退格字符,因为终端会吃掉该字符。到目前为止,这本书中涵盖的材料似乎还没有解决方案。解决方案是什么?
#include <stdio.h>
main()
{
int c;
while((c = getchar()) != EOF) {
switch (c) {
case '\t':
printf("\\t");
break;
case '\b':
printf("\\b");
break;
case '\\':
printf("\\\\");
break;
default:
putchar(c);
}
}
}
【问题讨论】:
-
输入重定向到救援:
yourprogram < filecontainingabackspaceorataborboth:-) -
在现代类 Unix 系统上,您可以使用 control-V control-H(或 control-V 退格键)在终端输入退格键。 K&R 书没有详细介绍 Unix 环境的细节,无法提及这类问题——也不应该。
-
哪个操作系统?我对 macOS 也有同样的问题,但
ctrl+h输入了退格键。 FWIW,这里的 a solution to exercise 1-10 仅使用迄今为止在 K&R 的 C 书中使用的术语编写。
标签: c