合同一般条件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/