fopen
不採用二進制方式打開,fopen(filename, "r"),只要文件中有一字節為1A,就會停止讀取.如果用fopen(filename,"rb")就不會出現此問題.
rb是只讀取二進位文件:
r:read, b:binary
rb是只讀取二進位文件:
r:read, b:binary
fseek
很重要,有時候讀不到長度會資料是這部分設定錯誤,意思是游標的位置.
#include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, char **argv) { FILE *pFile; int wLength; char uBuffer[256]; pFile = fopen("test.txt", "rb"); //file name, mode /*Open failure*/ if(pFile==NULL) { printf("[open failure\n"); } /*Open successful*/ else { printf( "[open sucessful]\n" ); /*Get length*/ fseek(pFile, 0, SEEK_END); wLength = ftell(pFile); printf("\nGet length: %X\n", wLength); /*Get data*/ wLength=0; fseek(pFile, 0, SEEK_SET); while(!feof(pFile)) { fread(&uBuffer[wLength], 1, 1, pFile); printf("\nData: %02X", uBuffer[wLength]); wLength++; } } printf("\n\n"); system("PAUSE"); return 0; }
fopen及讀寫權限
沒有留言:
張貼留言