1

私は最近 C++ でプログラミングを始めましたが、小さな問題にぶつかりました。名前が通常どおり画面に書き込まれるように (すべての名前の最初の文字がそれぞれの新しい行の先頭から始まるように) 出力を構造化する場合 (たとえば、すべての行が名前で始まり、次に番号で始まるとします)。 ) に続く数字を列に並べたいのですが、どうすればよいですか? プログラムの出力を次のようにしたい:

Gary         0
LongName     0
VerylongName 0

プログラムで上記の方法で何かを出力したいのですが、名前の長さが異なります (この場合は「0」が列に並んでいます)。

4

4 に答える 4

4

次のことを試してみてください: 出力する名前の最大長 (たとえば 20) がわかっている場合は、C++ 入出力マニピュレーターを使用して、出力の幅 (および左寄せ) を設定します。これにより、出力にmax文字が使用されます。

コードスニペット:

#include <iostream>
#include <iomanip>
...
// for each entry
  std::cout << std::setw(20) << std::left << "Gary" << 10 << "\n";
...
std::cout << std::flush;

ここにいくつかの詳細情報があります...

于 2013-10-28T15:38:48.373 に答える
1

実際には多くの情報が含まれていないため、ここでは暗闇の中で撮影しています...ただし、これを行う1つの方法は、名前の周りにパディングを付けて列を作成することです.数字について心配する必要はありません. Formatted outputCがC ++よりも優れている1つのケースです(IMHO)。C++ では、次のような方法でもこれを行うことができます。

cout << setw(15) << name << number << "\n";

あなたが持っている名前の最大長を前もって把握し、それにたとえば4を追加すると、ボーナスポイント.

于 2013-10-28T15:38:12.327 に答える