读取一个 wav 文件 returns 0 字节

Reading a wav file returns 0 bytes

所以我正在读取 .wav 文件,但它 returns 0 个字节。

    FILE *pFile = fopen("file.wav", "r");
    if (pFile == nullptr)
    {
        cout << "Unable to open wave file";
        return 1;
    }

    long lSize = ftell (pFile);
    char *p = new char[lSize];
    size_t bytesRead = fread(p, 1, lSize, pFile); // 0 bytes ```

获取文件位置前需要先查找到结尾,然后倒带:

FILE *pFile = fopen("file.wav", "rb");
if (pFile == nullptr)
{
    cout << "Unable to open wave file";
    return 1;
}

fseek(pFile, 0, SEEK_END); // <----- ADD THIS -------<

long lSize = ftell (pFile);

rewind(pFile); // <----- AND THIS -------<

char *p = new char[lSize];
size_t bytesRead = fread(p, 1, lSize, pFile);

确保以 read-binary 打开。 "rb" -- 查看 fopen 方法。