读取RAW音频文件

时间:2018-03-07 21:54:16

标签: 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;
}

1 个答案:

答案 0 :(得分:3)

你需要

  1. 以二进制模式$('#mark-received').click(function() { var requestURL = "{{ path('my_path') }}"; jQuery.ajax({ url: requestURL, type: 'GET', data: {'id' : request_item}, success: function success(data, text, xhr){ $('#mark-received').addClass('hidden'); $('#received-canceled').removeClass('hidden'); $('header > .alerts').append( $('<div>Success Message</div>').addClass('alert alert-success')); }, error: function error( xhr, status, err){ $('header > .alerts').append( $('<div>There is a problem. <div class="close">x</div></div>', err).addClass('alert alert-danger')); } }) }); 打开您的文件,如果您读取没有此标志的二进制文件,它将被视为文本文件,并且会给您不正确的值。
  2. 在阅读任何值之前检查ifstream c("cv.RAW", std::ios_base::binary)if (c.good()),检查文件是否已打开
  3. 通过在阅读每个字节后再次检查if (c)或仅if (c.good())来检查读取是否成功
  4. 如果您想一次读取一个整数,请使用if (c)进行读取,对于单个字节使用c.read((char*)&b, sizeof(b))
  5. 默认情况下,iostream不会抛出异常,所以每次使用它时都需要检查它们的状态。