0

したがって、次のような出力がある場合

Hello How are you         500
Halllo                    500

そして、その「500」は、その前に何が来ても、その特定の位置に常にあるはずです。何を配置する必要がありますか?

私は次のようなものを追加しようとしました

printf ("10%d", w.e);
printf ("\t\t%d", w.e);

しかし、「こんにちは、お元気ですか」や「こんにちは」などの言葉は常に影響を与え、同じ線に沿ってさらに移動させます。500 出力を常に 1 か所に配置するにはどうすればよいですか?

4

4 に答える 4

6

Hello How are you前の単語 ieとを右にパディングする必要がありHallloます。パディング500されると、常に同じ位置から開始されます。

次のように文字列を右に埋め込むことができます。

      printf("%-30s", "Hello How are you");
      printf("%-30s", "Halllo");

これにより、文字列に 30 文字の長さが割り当てられます。次にあなたの番号が続きます。

于 2012-12-02T20:49:49.130 に答える
1

数値をフォーマットする場合と同様に、printf を使用して、先頭の文字列が占有する最小文字数を指定できます。

実際、printf (疑似コード) への 1 回の呼び出しで両方を印刷できます。

format_string = "%-30s%5.0d";
leading_text = "hello";
number = 500;
printf(format_string, leading_text, number);
于 2012-12-02T20:51:58.297 に答える
1

このようなもの?

printf("%-50s%d\n", "Hello How are you", 500);
printf("%-50s%d\n", "Halllo", 500);

プリントアウト:

Hello How are you                                 500
Halllo                                            500
于 2012-12-02T20:52:28.553 に答える
1

より柔軟な別の方法を次に示します。

printf("%*d\n", 50-printf("Halllo"), 500);
于 2012-12-02T21:06:07.317 に答える