Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 处理奇怪的文件格式C++;_C++_Audio_Hex_Ascii - Fatal编程技术网

C++ 处理奇怪的文件格式C++;

C++ 处理奇怪的文件格式C++;,c++,audio,hex,ascii,C++,Audio,Hex,Ascii,我正在尝试读取一个.wac文件,但在互联网上几乎没有。我已将文件读入十六进制编辑器,并获得以下输出: 基本上,我知道文件的第一部分包含单词“WAac”,但随后包含一些奇怪的编码,在文件被读入后的某些部分中,我得到了以下“不可打印的”,我只是不知道从这里开始读头文件的其余部分,并且,因为没有关于格式的信息,所以数据会丢失。我的代码如下: struct s_wac_hdr { char id[4]; uint32_t size;

我正在尝试读取一个.wac文件,但在互联网上几乎没有。我已将文件读入十六进制编辑器,并获得以下输出:

基本上,我知道文件的第一部分包含单词“WAac”,但随后包含一些奇怪的编码,在文件被读入后的某些部分中,我得到了以下“不可打印的”,我只是不知道从这里开始读头文件的其余部分,并且,因为没有关于格式的信息,所以数据会丢失。我的代码如下:

    struct s_wac_hdr 
    {   
         char id[4];
         uint32_t size; 
         char type[4];
    };

      s_wac_hdr wac_hdr;
  s_chunk_hdr chunk_hdr;

  std::vector<uint8_t> fmt_data;

  file.read(reinterpret_cast<char*>(&wac_hdr), sizeof(wac_hdr));

  std::cout << "Header Id: " << wac_hdr.id << std::endl; 

  std::cout << "Header Type: " << wac_hdr.type << std::endl;
struct s_wac_hdr
{   
字符id[4];
uint32_t尺寸;
字符类型[4];
};
s_wac_hdr wac_hdr;
s_chunk_hdr chunk_hdr;
std::矢量fmt_数据;
read(reinterpret_cast(&wac_hdr),sizeof(wac_hdr));

std::cout观察:重复的XX XX XX 00 YY YY YY YY 00模式,第三个非零字节(视觉上显示)不太可能比其他两个大,向我暗示了32位小端二进制数。@Zack Hey Zack,谢谢:)所以这个文件可读吗?我在互联网上找不到任何东西。对不起,“我想那些可能是32位的小endian数字”是我给你的全部资料。看起来你自己面临着一个小小的逆向工程挑战:-/@Zack我现在觉得自己好笨(我不知道这个人为什么会使用这种文件格式。他们会使用.wav而不是.wav(这会让我的生活变得更简单)这似乎真的很奇怪。如果有一个在线资源可以打印这种格式,那么它会容易得多。祝我好运haWaac(或.wac)是bioware infinity游戏引擎使用的音频文件格式,现在我对该文件格式本身没有任何了解,但也许bioware会对查询作出回应(尽管我对此深表怀疑)。