4

我想以以下三种格式之一输出我的数字:

-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 回答