C++ Can std::无法使用操作员设置badbit或failbit<&书信电报;?如果是,什么时候?

C++ Can std::无法使用操作员设置badbit或failbit<&书信电报;?如果是,什么时候?,c++,c++11,C++,C++11,可以使用操作员std::cout设置badbit或failbit 可以通过操作员std::cout设置badbit或failbitstd::cout映射到较低级别的操作系统设施,任何可能导致操作系统写入失败的操作系统将显示为failbit或badbit。例如,在Linux上,您可以通过关闭stdout来实现这一点: int main(int argc, char* argv[]) { close(1); std::cout << "Hello, world!" <<

可以使用操作员
std::cout
设置
badbit
failbit

可以通过操作员
std::cout
设置
badbit
failbit
std::cout
映射到较低级别的操作系统设施,任何可能导致操作系统写入失败的操作系统将显示为
failbit
badbit
。例如,在Linux上,您可以通过关闭stdout来实现这一点:

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

std::cout Sure.
std::cout std::ostream&{os.setstate(std::ios::failbit);返回os;}
不知何故,我怀疑这是你要问的问题。这很公平,但是,是的,我很好奇在不直接设置
badbit
failbit
的情况下,什么时候会发生这种情况。嗯,大部分是直接的。
std::cout磁盘空间耗尽或其他I/O错误。至于failbit,只有在操作失败时才通过格式化操作来设置。这s可能发生在任何旧的用户定义的
操作中,或者尝试使用
close(1)
来测试它是否发生在Debian上。close不是一个可识别的词。:/如何测试它?@Andy356-
#include
?请参阅。