#include <iostream>
#include <fstream>
using namespace std;
// WAV文件头信息结构体
struct WAVHeader {
char riff[4]; // "RIFF"
int fileSize; // 文件总大小
char wave[4]; // "WAVE"
char fmt[4]; // "fmt "
int fmtSize; // fmt块大小
short audioFormat; // 音频格式
short numChannels; // 声道数
int sampleRate; // 采样率
int byteRate; // 码率
short blockAlign; // 区块对齐
short bitsPerSample; // 每个样本的位数
char data[4]; // "data"
int dataSize; // 数据大小
};
int main() {
// 读取WAV文件
ifstream fin("test.wav", ios::binary);
if (!fin) {
cout << "打开文件失败!" << endl;
return 1;
}
WAVHeader header;
fin.read((char*)&header, sizeof(header));
if (strncmp(header.riff, "RIFF", 4) != 0 || strncmp(header.wave, "WAVE", 4) != 0 || strncmp(header.fmt, "fmt ", 4) != 0 || strncmp(header.data, "data", 4