合計 昨日 今日

WAVファイルの波形データのバイト数の取得

フォーラムルール
フォーラムルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Name: ロコン
[URL]
Date: 2017年10月09日(月) 22:38
No: 1
(OFFLINE)

 WAVファイルの波形データのバイト数の取得

test.wavの波形データのバイト数を取得するプログラムを作ったのですが取得した値が正しいのかどうか分かりません。
このプログラムで問題ないのでしょうか?
コード[C++]: 全て選択
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#pragma warning(disable:4996)
#include <stdio.h>
#include <stdlib.h>
 
int main(void) {
    FILE *fp;
    long dataSize;
 
    fp = fopen("test.wav", "rb");
   
    fseek(fp, 40, SEEK_SET);
    fread(&dataSize, 4, 1, fp);
    printf("データサイズ:%ld", dataSize);
 
    while (1) {
    }
    fclose(fp);
 
    return 0;
}

Name: みけCAT
[URL]
伝説なるハッカー(677,649 ポイント)
Date: 2017年10月09日(月) 23:14
No: 2
(ONLINE)

 Re: WAVファイルの波形データのバイト数の取得

このプログラムでは、
  • fcloseの前に無駄な無限ループがあり、fcloseが実行されない
  • long型が4バイトでない環境(例えば、LP64の環境)ではうまくいかない
  • リトルエンディアンでない環境ではうまくいかない
という問題がありますね。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)


Return to C言語何でも質問掲示板

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[15人]