0

私は今、K&R The C プログラミング言語に座っています。そして、私は1つの演習1-8にスタックしています。
演習それ自体。

各タブを 3 文字のシーケンス >、バックスペース、-、ウィッチ プリントを → に置き換え、各バックスペースを同様の ← に置き換えるプログラムを作成します。これにより、タブとバックスペースが表示されます。

ここで理解しているように、その演習では、タブとバックスペースで矢印を指すように求められます。
しかし、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-

ほとんどがオーバープリント文字をサポートしていないため、これは最新のターミナルエミュレータでは機能しない可能性があることに注意してください。元々のアイデアは、文字を印刷し、頭を1文字バックアップし、前の文字の上に別の文字を打つという古いタイプライターの手法を模倣することでした。

端末がUTF-8をサポートしている場合は、「→」Unicodeグリフ(U + 2192 RIGHTWARDS ARROW)に置き換えることができます。これは、UTF-8で次のようにエンコードされます。

\xe2\x86\x92

同様に、「←」(U + 2190)は

\xe2\x86\x90
于 2013-02-19T00:01:11.573 に答える