次の 3 つの形式のいずれかで数値を出力したいと考えています。
-1 0 +1
しかし、ストリームフラグshowpos
は許可するだけです
-1 +0 +1
この周りに簡単なショートカットはありますか?
次の 3 つの形式のいずれかで数値を出力したいと考えています。
-1 0 +1
しかし、ストリームフラグshowpos
は許可するだけです
-1 +0 +1
この周りに簡単なショートカットはありますか?
if ステートメントを使用して、値が 0 かどうかを確認します。そうであれば、ゼロを出力し、そうでなければ、showpos の場合と同じように出力します。
これに近道があるとは思いませんが、上記はかなり簡単です。
サンプルコード
if(n == 0) {
cout << '0';
} else {
cout << showpos << n;
}
強引な(ある意味醜い)方法:
ofstream outFile.open("data.txt");
if (num ==0 ){
outFile<<num;
}
else
{
outFile << std::showpos << num ;
}
あなたの質問に対する私の理解によると。次のコードは役に立つかもしれません。間違いがあれば修正してください。
// 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