合同一般条件4.4.2
c89型
我有一个wave文件:
8000赫兹
16位
我想知道我是否可以将这个wave文件的原始数据加载到缓冲区中。
非常感谢你的建议

最佳答案

是的,您正在寻找在C中读取二进制文件。
像这样的:

FILE* f;
char buf[MAX_FILE_SIZE];
int n;

f = fopen("filename.bin", "rb");
if (f)
{
    n = fread(buf, sizeof(char), MAX_FILE_SIZE, f);
}
else
{
    // error opening file
}

这将读取字节缓冲区。从中你可以建立你的数据。直接读取多字节数据更为棘手,因为会遇到表示和结束性问题。
使用两个关键的C功能:
fopen以二进制模式打开文件(“rb”标志)
fread读取块数据(对二进制流有用)。记录的here

关于c - 将wave文件数据加载到缓冲区中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2376858/

10-12 18:54
查看更多