当我通过fstream读取信息时,它在两个不同的程序中发生了两次,即使给定的文件没有改变,给我程序的输入也不稳定.
在我最近的一个关注音频阅读的节目中.我正在对文件中的前四个字母进行简单的检查.这些字母应该是RIFF,它们也是 - 我检查过.
因此,为了检查给定二进制文件的格式,我缓冲前四个字母并查看它们是否等于'RIFF'.
char buffer[4];
std::ifstream in(fn,std::ios::binary);
in.read(buffer,4);
if(buffer!="RIFF"){//Always wrong atm
std::cout << "INVALID WAV FILE: " << buffer << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
当我第一次制作这个节目时,我记得这个工作正常.现在,我通过自己的cout得到一个错误:
INVALID WAV FILE: RIFFýfK
Run Code Online (Sandbox Code Playgroud)
有没有人知道出了什么问题?也许是一种让fstream更加一致的方法?