函数
<ios> <iostream>

std::noshowpos

ios_base& noshowpos (ios_base& str);
不显示正号
清除str流的showpos格式标志。

当未设置showpos格式标志时,在插入str的非负值前不显示加号(+)。

此标志可通过showpos操纵符设置,该操纵符强制在插入流的每个非负数值(包括零)前写入加号(+)。

对于标准流,showpos标志在初始化时为未设置

参数

str
格式标志受影响的流对象。
因为此函数是一个操纵符,它被设计为在不带参数的情况下,与流上的插入 (<<) 和提取 (>>) 操作结合使用(见下例)。

返回值

参数 str

示例

1
2
3
4
5
6
7
8
9
10
11
// 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;
}

可能的输出
+1      +0      -1
1       0       -1


数据竞争

修改 str。对同一个流对象的并发访问可能导致数据竞争。

异常安全

基本保证:如果抛出异常,str 处于有效状态。

另见