c++ - 有没有办法将标准输出设置为二进制模式?

标签 c++

有没有办法将标准输出设置为二进制模式?在什么模式下stdout没有任何操作,从我的调试问题我假设它是在文本模式下,是真的吗?

我试过函数:

freopen(NULL,"wb",stdout)

但是我的程序在执行时崩溃了。

最佳答案

我尝试了下面显示的代码将标准输入和标准输出设置为二进制模式(在 Windows 上):

#ifdef _WIN32
  #include <io.h>
  #include <fcntl.h>
#endif
...
#ifdef _WIN32
  setmode(fileno(stdout),O_BINARY);
  setmode(fileno(stdin),O_BINARY);
#endif

在 Linux 下你不能这样做,因为在这个平台上二进制和文本模式是一回事。

关于c++ - 有没有办法将标准输出设置为二进制模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41517462/

相关文章:

c++ - 为什么我对 pointer->next == NULL 的检查在我的链表中出现错误?

for循环中的c++冗余代码

c++ - 我的载体正在消失

c++ - 编译虚拟 C++ 程序时链接不成功

c++ - 如何在 Visual Studio (2008) 的特定实例中打开源文件

c++ - IEEE 754 浮点除法的可逆性

C++重载运算符解析

C++ 'std::out_of_range'

c++ - 从 Visual Studio 2008 切换到 Visual Studio 2010,现在无法链接到 boost 文件系统

c++ - C++ 中的任意长度 FFT