C 如何查找wav文件的字节?

C 如何查找wav文件的字节?,c,wav,fseek,C,Wav,Fseek,我100%确定wav文件的字节数是chunkSize+8,这正是我一直在尝试的 是: fseek(文件指针,块大小+8-4,搜索集) 然后使用 fread(版本4,1,文件指针) 将最后4个字节放入数组revunsigned char rev[4]。但它放入rev的字节肯定不是最后4个字节。我已经在这个项目上工作了这么多小时,但我仍然不明白为什么这个项目不起作用。如果有人能告诉我正确的答案,我现在就给他造一座雕像。如果你想访问文件的最后4个字节,你可以使用SEEK\u END,如下所示: fse

我100%确定wav文件的字节数是
chunkSize+8
,这正是我一直在尝试的 是:

fseek(文件指针,块大小+8-4,搜索集)

然后使用

fread(版本4,1,文件指针)


将最后4个字节放入数组rev
unsigned char rev[4]
。但它放入rev的字节肯定不是最后4个字节。我已经在这个项目上工作了这么多小时,但我仍然不明白为什么这个项目不起作用。如果有人能告诉我正确的答案,我现在就给他造一座雕像。

如果你想访问文件的最后4个字节,你可以使用
SEEK\u END
,如下所示:

fseek(file_pointer, -4, SEEK_END);

然后,
fread
应返回最后四个字节。

如果要访问文件的最后四个字节,可以使用
SEEK\u END
,如下所示:

fseek(file_pointer, -4, SEEK_END);

然后,
fread
应该返回最后四个字节。

如果需要文件的最后四个字节,为什么不使用
SEEK\u END
?实际问题是wav文件的还原。所以,当我读最后一个4时,我会用fseek指向下一个4(开始的方向),我会读它们…然后是下一个4。我必须知道什么时候该停下来。这就是为什么这个文件可能有多大?为什么不把它全部读入内存,反转,然后再写出来呢?如果你想要文件的最后4个字节,为什么不使用
SEEK\u END
?实际的问题是wav文件的反转。所以,当我读最后一个4时,我会用fseek指向下一个4(开始的方向),我会读它们…然后是下一个4。我必须知道什么时候该停下来。这就是为什么这个文件可能有多大?为什么不把它全部读入内存,倒过来,然后写出来呢?因为我不知道什么时候该停下来。因为在获取这4个字节后,我想要接下来的4个字节,然后下一个…直到我到达页眉(从开头算起的44个字节是页眉的结尾),我不太确定我是否理解-您是否正在尝试读取wav文件的最后4个字节?wav文件是否嵌入到另一个文件中?实际的问题是为什么fseek(文件指针,chunkSize+8-4,搜索集)不起作用。我的目标是反转wav文件。如果我解决了它不起作用的原因,我将解决整个问题。尝试输出
chunkSize
的值,看看它是否符合您的期望。因为我不知道何时停止。因为在获取这4个字节后,我想要接下来的4个字节和下一个…直到到达标头((从开头算起44个字节是标题的结尾)我不太确定我是否理解-您是否正在尝试读取wav文件的最后4个字节?wav文件是否嵌入到另一个文件中?实际问题是为什么fseek(文件指针,chunkSize+8-4,SEEK\u SET)不起作用。我的目标是反转wav文件。如果我解决了为什么不起作用,我将解决整个问题。请尝试输出
chunkSize
的值,看看它是否符合您的预期。