2010-11-30 11 views
0

Wikipediaの制御文字について読んだ後、私はそれらを使っていくつかのコードを書こうとしました。 私はそれらのいずれかを書くとき、私が正常に必要な/たかった出力を書き込むことができませんでした:Cで制御文字を含む書式付き出力?

name : ... 
surname : ... 
       asadsa // these three words are some data 
       adsdsa 
       asdsds 

私の努力:

fprintf(stdout, "\rname\t\t\b:%s\r\fsurname\t:%s\v %s \v%s \v%s ", 
     name, surname, data1, ...) 

が、出力は次のとおりです。

name  : georg. 
surname : alafron. 
        to the school 
        .... 
        .... 

が、この出力希望の1つではないので、どうすればfprintf()と制御 文字を使用して修正できますか?一般的に

+2

なぜあなたは '\ v'を使いたいのですか? –

+1

\ fのような仕事、\ fを使う代わりに、私は\ vを使う –

答えて

2

、あなたはほとんどの制御文字'\a''\b''\f'、のいずれかを使用して、原因を持っていないだろう、とあなたが頻繁に'\r'を使用しません。 '\t''\n'が残っています。どちらもおそらく使用されます。最後に'\r''\b'を使用したとき、同じデータを2回書き込むことで、デイジーホイールプリンタで太字にするコードを書いていました。現代のインクジェットやレーザープリンタでは役に立たない。

必要な出力と実際の出力の違いを確認するのは少し難しいです。しかし、このフォーマット文字列は、あなたが望む何をすべき、あなたのデータは、変数namesurnamedata1data2、およびdata3であると仮定:

printf("name : %s\nsurname : %s\n%14s%s\n%14s%s\n%14s%s\n", 
     name, surname, "", data1, "", data2, "", data3); 

%14s」フォーマットは、幅は14個の文字であることを指定しますこれは、データ行のインデントのサイズです。空の文字列は14文字に空白で埋められ、その後にデータの関連ビットが続きます。

関連する問題