c++ - std::cout 可以使用运算符 << 设置 badbit 或 failbit 吗?如果是这样,什么时候?

标签 c++ c++11

可以std::cout设置 badbitfailbit与接线员 << .如果是这样,这是什么时候发生的?

最佳答案

std::cout 映射到较低级别的操作系统设施,任何可能导致操作系统写入失败的东西都将显示为 failbitbadbit。例如,在 Linux 上,您可以通过关闭标准输出来导致这种情况发生:

int main(int argc, char* argv[])
{
  close(1);
  std::cout << "Hello, world!" << std::endl;
  return cout.fail(); // returns 1
}

(而且,由于文件描述符是继承的,您的调用进程可能已经为您关闭了标准输出。)

关于c++ - std::cout 可以使用运算符 << 设置 badbit 或 failbit 吗?如果是这样,什么时候?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26242224/

相关文章:

c++ - 通用数字类

c++ - 在 C++ 11 中迭代模板类

c++ - 在 C++ 中使用引用变量的 void 返回类型

c++ - 从 C++ 中定义的异常返回整数

c++ - 是否有办法使用Booth算法捕获二进制乘法期间的上溢/下溢?

c++ - seekg 的第二次调用不起作用

c++ - 返回 std::make_pair 与 std::forward

c++ - 如何解释 array[value - 'a' ]

c++ - boost::multi_index_container,对容器内 std::set 的操作

c++ - 如何让定时器在后台保持运行