如果想讀資料中每個 byte 的資料,下例看似正常沒什麼奇怪的。
Data : 42 4D 20 2A 3C 1A 42 43 ...
fp = fread(“data”, “r”);
c = fgetc(fp);
但這其實是錯的,當讀到 1A 時,後面接著讀的資料全都會變成 FFFFFFFF,
因為 1A 在 ASCII 裡代表的是 Substitue,也就是 Crtl + Z,
不知道程式讀到這裡的時候,是不是自己判斷暫停了?
最保險的方法還是加上 b 吧!
fp = fread(“data”, “rb”);
因為 1A 在 ASCII 裡代表的是 Substitue,也就是 Crtl + Z,
不知道程式讀到這裡的時候,是不是自己判斷暫停了?
最保險的方法還是加上 b 吧!
fp = fread(“data”, “rb”);
哈…2012/08/23 今天剛好遇到這個問題。
回覆刪除讀一個RAW image讀到1A 之後的 pixel value 全部都是-1。
改成rb之後果然解決了。