0

我现在坐在 K&R The C programming Language 上。我在 1 个练习 1-8 上有筹码。
锻炼它自己。

编写一个程序,将每个制表符替换为三个字符序列 >、退格、-,巫婆打印为 →,每个退格替换为类似的 ←。这使制表符和退格键可见。

据我了解,该练习要求我在制表符和退格键中制作指向箭头。但我不知道如何在 C 中将 2 个字符剪辑在一起
这是它自己的程序

#include <stdio.h>
main ()  
{  

int c;

while ((c=getchar()) !=EOF)
{
    if (c == '\t')
        printf(">->->\b");
    if (c == '\b')
        printf("<-<-<-\b");
     if (c !='\t')
         if (c !='\b')
              putchar(c);

}   

  getchar();
}

那么我的错误在哪里,你能在这里帮助我吗?

4

1 回答 1

2

所需的顺序是

>\b-

请注意,这可能不适用于现代终端仿真器,因为大多数不支持叠印字符。最初的想法是模仿旧的打字机技术,打印一个字符,让一个字符支持头部,然后在前一个字符的顶部敲击另一个字符。

如果您的终端支持 UTF-8,您可以替换 '→' Unicode 字形(U+2192 RIGHTWARDS ARROW),它以 UTF-8 编码为

\xe2\x86\x92

类似地,'←' (U+2190) 是

\xe2\x86\x90
于 2013-02-19T00:01:11.573 回答