我想使用fscanf解析二進制文件(圖像)。如何使用fscanf解析二進制文件
這是文件的開始。我想獲得文件的'寬度'和'高度'。在這種情況下,寬度是640,高度是480
00000000: 5036 0a23 2043 7265 6174 6564 2062 7920 P6.# Created by
00000010: 4972 6661 6e56 6965 770a 3634 3020 3438 IrfanView.640 48
00000020: 300a 3235 350a a079 35a0 7833 a179 349f 0.255..y5.x3.y4.
所以標題是「後跟空格(0x20)P'some字符,隨後依次爲寬度是0xA(換行)和其次是高度」
在我的代碼,我有
t=fscanf(fin,"P%c\r%d %d",&fc,&w, &h);
or
t=fscanf(fin,"P%c\n%d %d",&fc,&w, &h);
但並不總會返回(而不是3)1,我的W和H不被讀取。
你能告訴我如何解決我的問題?
對於0x0a,'\ r'很可能是錯誤的 - 使用文字常量代替。 –
使用'fscanf()'來解析文本文件已經夠糟糕了。我認爲瘋狂在於你要走下的道路。 –
謝謝。什麼把fscanf()中的0xa放在我的文件中? – michael