首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++标准流读WAV文件的有关问题

2012-02-24 
C++标准流读WAV文件的问题我想用C++写一个读WAV文件的程序,但是读取头信息中的ChunkSize时总是不对程序

C++标准流读WAV文件的问题
我想用C++写一个读WAV文件的程序,但是读取头信息中的"ChunkSize"时总是不对
程序的主要部分如下:

#include <fstream.h>

class WaveManager
{
public:
WaveManager(ifstream& f);
.........

private:
char chunkID[4];
unsigned long chunkSize;
.............
};

WaveManager::WaveManager(ifstream& f)
{
f>>chunkID>>chunkSize;
}

void main()
{
char *pFileName = "D:\\start.wav";
ifstream h(pFileName);
  WaveManager *w = new WaveManager(h);

}

chunkID可以正确读取的,就是"RIFF"
而chunkSize就不对了
我觉得是ifstream不能直接读写二进制文件中的Unsigned long数据
求高人指点

[解决办法]
所以说为了干掉大小尾机的影响,还是全部映射然后提取比较容易
[解决办法]
我觉得infile.read((char*)&number, 4); 是不可移植的,但是手边没有机器不好测试

热点排行