我想以以下三种格式之一输出我的数字:
-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