[爆卦]wav檔是什麼?優點缺點精華區懶人包

為什麼這篇wav檔鄉民發文收入到精華區:因為在wav檔這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者DevilYu (慕少艾)站內C_and_CPP標題[問題] 讀取wav檔資料時間Fri Feb...


( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
( 未必需要依照此格式,文章條理清楚即可 )

遇到的問題: (題意請描述清楚)
讀取WAV檔,並將取得的資料(振幅),存入矩陣裡

希望得到的正確結果:
正確的振幅值

程式跑出來的錯誤結果:
讀到很大的負數值-9XXXXXXXXXXXXX

開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
C Win7

有問題的code: (請善用置底文標色功能)
lude <stdio.h>
#include <stdlib.h>

int main()
{
double data;
int i = 0;

FILE *pal;

if((pal = fopen("E:\\C\\Cut\\Cut\\1234.wav","rb")) == NULL)
{
printf("File could not open\n");
}
else
{
for(i=1;i<10;i++) \\先讀前10個值看是否正確
{
fscanf(pal,"%lf\n",&data);
if(data==0)
printf("empty\n");
else
printf("%lf\n",data);
if(feof(pal))
break;
}

補充說明:

我試過把i的值改變EX:for(i=10000,i<10010,i++)諸如此類,但是得到的
還是一樣是很大的負數值,小弟寫C的經驗還很少,希望各位高手不吝指教

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.38.24.174
VictorTom:wav檔內應該不是純文字資料吧?? 你是不是應該用fread來 02/05 23:23
VictorTom:讀資料進入變數裡啊?_? 02/05 23:23
VictorTom:另外, wav應該也有自己的檔頭格式吧?? 都不用去解析檔頭 02/05 23:24
VictorTom:就可以直接以double型態讀資料出來嗎?_? 02/05 23:24
DevilYu:我知道WAV檔前44Byte要把他去掉,我再改改看感恩 02/05 23:35
Bencrie:WAV的sample你知道是什麼格式嗎 ? 02/06 14:36
Bencrie:正常的CD音源是16bits 44100hz 2channels 02/06 14:36
Bencrie:每個sample是Signed 16 bit Little Endian 02/06 14:38
Bencrie:WAV支援很多sample format,但絕大多數情況不會是double。 02/06 14:40

你可能也想看看

搜尋相關網站