0

Cプログラムを使ってテーブル形式のファイルを書きたいです。fputs を使用してファイルを書き込んでいます。私のファイルは次のようになります:

    [sl] [Name] [School] [add]
    1 ABC DEF Dav India
    2 XYZ LLL USA

しかし、出力ファイルを次のようにしたい:

    [sl]    [name]     [school]    [add]
     1      ABC DEF     DAV        INDIA
     2      XYZ         LLL        USA

fputsファイルのフォーマットを変更できるように、printfのような長さ指定子のようなものがあることを知りたいです。

4

2 に答える 2

0

九尾が指定したように、必要なコードの量を削減するfprintf代わりに使用したいと思うでしょう。fputsfprintf、フォーマット文字列に従ってデータをファイルに書き込みます。データは文字列データになるため、各部分のフォーマット文字列に %s を指定して、部分的に書き出すことになります。あなたのABC DEF言葉を例に挙げてみましょう。fprintf次のように文字列リテラルを記述するために使用できます。

fprintf (fp, "   %s    %s\n", "ABC", "DEF");

%およびと の間の整数を指定して、書き込む各単語の最小フィールド幅を指定することもできますs。たとえば%10s、最小幅 10 文字で '-------ABC' を出力します。-文字列を左揃えにするために、数字の前に記号を配置することもできます。たとえば、%-10s「ABC-------」を出力するには。(ダッシュは実際にはスペースです。説明のためだけです) は、異なる fprintf 呼び出しごとにさまざまな数のスペースを書き出すことなく、必要な情報を表形式に分割するのに役立ちます。

すべてのオプションについては、「man 3 fprintf」を参照してください。ウェブ上には文字通り何千もの例があります。

于 2014-06-27T05:36:28.920 に答える