将未知文件格式打印到屏幕

时间:2016-03-03 20:22:26

标签: c++ binaryfiles

我从机器人那里得到了一个测试文件,我必须通过我正在开发的C ++程序编程。所以我想用这个文件来看看机器人如何保存点的坐标。我的程序目前能够计算坐标,现在我必须生成机器人代码。

因此我想查看该文件。但似乎该文件是以二进制模式写入的。所以我的第一个想法是:以二进制模式打开文件并将内容打印到屏幕上。所以这是我使用的代码:

//#include "stdafx.h"
  #include <iostream>     // std::cout
  #include <fstream>      // std::ifstream
  #include <Windows.h>

  int main () {
     std::ifstream is ("Test.PRG", std::ifstream::binary);
     if (is) {
          // get length of file:
          is.seekg (0, is.end);
          int length = is.tellg();
          is.seekg (0, is.beg);

          char * buffer = new char [length];

          std::cout << "Reading " << length << " characters... ";
          // read data as a block:
          is.read (buffer,length);

          if (is)
              std::cout << "all characters read successfully.";
          else
              std::cout << "error: only " << is.gcount() << " could be read";
          is.close();

          // ...buffer contains the entire file...

          for(int i=0; i<length; i++)
          {
            std::cout << (double) buffer[i] << std::endl;
          }

          delete[] buffer;
          }

         Sleep(10000);
         return 0;
   }

但是使用这段代码,我只能看不到文件中的内容。我也尝试过不同的对话(双倍)。我用char,int和float。现在我只是不知道,我还能做些什么。是否有可能的方法来读取此文件并将其转换为ASCII?我还在这里添加了该文件的链接,因此您可以查看它。 Download link for file

1 个答案:

答案 0 :(得分:1)

这是我用HexFiend拍摄的文件开头的图片: enter image description here