4

次の 3 つの形式のいずれかで数値を出力したいと考えています。

-1 0 +1

しかし、ストリームフラグshowposは許可するだけです

-1 +0 +1

この周りに簡単なショートカットはありますか?

4

3 に答える 3

4

if ステートメントを使用して、値が 0 かどうかを確認します。そうであれば、ゼロを出力し、そうでなければ、showpos の場合と同じように出力します。

これに近道があるとは思いませんが、上記はかなり簡単です。


サンプルコード

if(n == 0) {
    cout << '0';
} else {
    cout << showpos << n;
}
于 2013-03-30T01:45:49.423 に答える
1

強引な(ある意味醜い)方法:

ofstream outFile.open("data.txt");

if (num ==0 ){
   outFile<<num;
}
else
{
  outFile << std::showpos << num ;
}
于 2013-03-30T01:47:06.217 に答える
1

あなたの質問に対する私の理解によると。次のコードは役に立つかもしれません。間違いがあれば修正してください。

// modify showpos flag
#include <iostream>     // std::cout, std::showpos, std::noshowpos

int main () {
  int p = 1;
  int z = 0;
  int n = -1;
  std::cout << std::showpos   << p << '\t' << z << '\t' << n << '\n';
  std::cout << std::noshowpos << p << '\t' << z << '\t' << n << '\n';
  return 0;
}

output

+1      +0      -1
1       0       -1
于 2013-03-30T02:03:41.747 に答える