【问题标题】:How can I print to my file in binary instead of hexadecimal [duplicate]如何以二进制而不是十六进制打印到我的文件[重复]
【发布时间】:2013-10-27 19:28:45
【问题描述】:

我正在尝试编写一个输出每个可能的 16 位数字的文件。我得到的是 16 位十六进制而不是 16 位二进制的输出。我怎样才能得到它的二进制文件。谢谢

FILE * file = fopen("16BitFile.txt", "w"); 
for(int i=0; i<65536; i++) 
{ 
    fprintf(file, "%016x\n", i); 
}

【问题讨论】:

标签: c++ file io binary hex


【解决方案1】:
std::ifstream ifs ("16BitFile.txt", std::ifstream::in);
int number;
ifs>>number;
std::bitset<16> x(number);
std::cout<<x;

您可以查看this 了解有关如何使用 bitset 打印整数的更多信息

【讨论】:

    【解决方案2】:
    #include <stdio.h>
    #include <stdexcept>
    #include <stdint.h>
    
    int main()
    {
      FILE * file = fopen("16BitFile.txt", "wb");
      int16_t i = 0;
      for (;;) {
        if (fwrite(&i, sizeof(i), 1, file) != 1)
          throw std::runtime_error("fwrite failed");
        if (++i == 0)
          break;
      }
      if (fclose(file) != 0)
        throw std::runtime_error("fclose failed");
    }
    

    【讨论】:

      猜你喜欢
      • 2013-03-31
      • 2012-03-28
      • 1970-01-01
      • 2018-06-09
      • 2022-11-29
      • 2013-03-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多