C - 如何读取wav文件格式

时间:2015-11-16 01:25:25

标签: c io wav

我试图用c读取一个wav文件,但仍然没有结果。 我尝试使用freadfscanf阅读。我真的不知道如何阅读这种文件类型。

这是我在c:

中的代码
#include "stdio.h"
#include "stdlib.h"

int main(int argc, char const *argv[])
{
    FILE *fp;
    long n, size;
    int i;
    int *ptr;

    fp = fopen("gundah.wav", "rb");

    /* Find end of file */
    fseek(fp, 0L, SEEK_END);

    /* Get current position */
    n = ftell(fp);

    /* Get size of file */
    size = n;

    ptr = (int*)malloc(size*sizeof(int));

    if(ptr == NULL)
        printf("memory not allocated\n");

    /* read the file and print it to the screen */

    fclose(fp);
    return 0;
}

我只需要阅读文件,然后将其打印到屏幕上。 有人可以帮助我吗?

修改 我想读取字节并查看结果

1 个答案:

答案 0 :(得分:0)

没检查。只是给你一个粗略的想法。

void printBytes(unsigned char* buff, int len)
{
    int i;
    for (i = 0; i < len; i++)
    {
        if(i%8 == 0){
            printf("\n");
        }
        printf("0x%02x",buff[i]);
        printf("\t");

    }
}

int main()
{
    unsigned char buffer[1024];

    FILE *fp = fopen("test.wav", "r");
    if (fp != NULL) {
        size_t byte_read;
        // double check this
        do{
            byte_read = fread(buffer,sizeof(unsigned char),1024,fp);
            printBytes(buffer, byte_read);
        }while(byte_read > 0)
        fclose(fp);
    }
}