>b; 你需要吗 在二进制模式下打开文件ifstream c(“cv.RAW”,std::ios\u base::binary),如果您读取的二进制文件没有此标志,它将被视为文本文件,并将为您提供不正确的值 在读取任何值之前,通过检查if(c.good())或只检查if(c)来检查文件是否打开 读取每个字节后,再次检查if(c.good())或只检查if(c),检查读取是否成功 使用c.read((char*)&b,sizeof(b))如果您想一次读取一个整数,对于单个字节,请使用char ch;c.read(&ch,sizeof(ch)),c++,audio,C++,Audio" /> >b; 你需要吗 在二进制模式下打开文件ifstream c(“cv.RAW”,std::ios\u base::binary),如果您读取的二进制文件没有此标志,它将被视为文本文件,并将为您提供不正确的值 在读取任何值之前,通过检查if(c.good())或只检查if(c)来检查文件是否打开 读取每个字节后,再次检查if(c.good())或只检查if(c),检查读取是否成功 使用c.read((char*)&b,sizeof(b))如果您想一次读取一个整数,对于单个字节,请使用char ch;c.read(&ch,sizeof(ch)),c++,audio,C++,Audio" />

读取原始音频文件 我是C++初学者,我有一个学校项目,它分析音频文件,我不能读取文件,在这个例子中程序从文件继续读取第一个值。 #include <iostream> #include<fstream> using namespace std; int main() { ifstream c; c.open("cv.RAW"); int b; while(1) { c>>b; cout<<b<<" "; } return 0; } #包括 #包括 使用名称空间std; int main() { ifc流; c、 开放式(“cv.RAW”); int b; 而(1) { c> >b; 你需要吗 在二进制模式下打开文件ifstream c(“cv.RAW”,std::ios\u base::binary),如果您读取的二进制文件没有此标志,它将被视为文本文件,并将为您提供不正确的值 在读取任何值之前,通过检查if(c.good())或只检查if(c)来检查文件是否打开 读取每个字节后,再次检查if(c.good())或只检查if(c),检查读取是否成功 使用c.read((char*)&b,sizeof(b))如果您想一次读取一个整数,对于单个字节,请使用char ch;c.read(&ch,sizeof(ch))

读取原始音频文件 我是C++初学者,我有一个学校项目,它分析音频文件,我不能读取文件,在这个例子中程序从文件继续读取第一个值。 #include <iostream> #include<fstream> using namespace std; int main() { ifstream c; c.open("cv.RAW"); int b; while(1) { c>>b; cout<<b<<" "; } return 0; } #包括 #包括 使用名称空间std; int main() { ifc流; c、 开放式(“cv.RAW”); int b; 而(1) { c> >b; 你需要吗 在二进制模式下打开文件ifstream c(“cv.RAW”,std::ios\u base::binary),如果您读取的二进制文件没有此标志,它将被视为文本文件,并将为您提供不正确的值 在读取任何值之前,通过检查if(c.good())或只检查if(c)来检查文件是否打开 读取每个字节后,再次检查if(c.good())或只检查if(c),检查读取是否成功 使用c.read((char*)&b,sizeof(b))如果您想一次读取一个整数,对于单个字节,请使用char ch;c.read(&ch,sizeof(ch)),c++,audio,C++,Audio,iostreams默认情况下不会抛出异常,因此每次使用它们时都需要检查它们的状态。在什么情况下您认为会退出循环?不要发布代码图片或链接到图片。您的问题并将代码作为文本复制/粘贴到其中。std::cin>>int是格式化输入。用于读取数字e用实际数字字符编码。.wav文件包含二进制文件,因此无法工作。此外,.wav文件不仅包含您想要的实际声音数据,还包含一个包含有关文件信息的标题。您必须解析文件,或者找到一个库来为您执行此操作。因此,据我所知,它必须类似于“IFC”(“cv.RAW”,std::i

iostreams默认情况下不会抛出异常,因此每次使用它们时都需要检查它们的状态。

在什么情况下您认为会退出循环?不要发布代码图片或链接到图片。您的问题并将代码作为文本复制/粘贴到其中。
std::cin>>int
是格式化输入。用于读取数字e用实际数字字符编码。.wav文件包含二进制文件,因此无法工作。此外,.wav文件不仅包含您想要的实际声音数据,还包含一个包含有关文件信息的标题。您必须解析文件,或者找到一个库来为您执行此操作。因此,据我所知,它必须类似于“IFC”(“cv.RAW”,std::ios_base::binary);int b;if(c.good())而(1){c>>b;假设您的文件是二进制文件而不是文本文件,您仍然需要从
>
更改为
read()
您在while循环中的良好检查需要在读取和打印之间,如果读取失败,则b中的值未定义(可能是上次成功读取时读取的值)另外,不要对数据类型使用普通的
int
,请使用具有显式大小的数据类型,例如
int16\t
。不幸的是,您可能仍然有一个小的endian/big-endian问题。