我试图用c读取一个wav文件,但仍然没有结果。
我尝试使用fread
和fscanf
阅读。我真的不知道如何阅读这种文件类型。
这是我在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;
}
我只需要阅读文件,然后将其打印到屏幕上。 有人可以帮助我吗?
修改 我想读取字节并查看结果
答案 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);
}
}