- 512 名前:デフォルトの名無しさん [2010/04/26(月) 21:04:13 ]
- Waveファイルを読み込むプログラムを作ろうとしてますがうまくいきません。
大きいファイルを読もうとしてるので、バッファ領域を確保して、その領域にちまちま ファイルを読み込んでいこうという魂胆ですが、出力してみると全て0のままです。 小さいファイルなら読み込めるようですが、大きい(200MB以上)では読み込んでくれません。 アドバイスをください。 以下ソース ifs = fopen("C:\\TEST.wav","rb"); /*** ヘッダー読む ***/ int blockSize = waveHeader.getBlockAlign(); //ブロックサイズを得る //12000バイトのバッファを確保したつもり unsigned char *buffer = (unsigned char*)calloc(4000, blockSize); do { //12000バイト分のデータを読み込んだつもり readSize = fread( buffer , blockSize , 4000 , ifs ); for( int i = 0; i < readSize; ++i) { //読み込んだデータを出力してみても 0 のままで出力される cout << ((short*)buffer)[ i * 2] << ":" << ((short*)buffer)[ i * 2 + 1] << endl; } } while (readSize == 4000);
|

|