這幾日處理漢字,用Unicode,fgetwc不好用,就自己寫了一個,讀取Unicode小端排序文件的,一次取一個字符(2個字節),返回之。
讀到文件末尾返回WEOF。如果最后一次僅有一個字節,則按小端排序處理之,即如文件內容為
(十六進制)
11 22 33
則讀兩次返回值結果為:
2211, 0033即33
再讀返回WEOF。
//
寬字符讀取函式,等同ANSI的fgetc
wchar_t fgetdb(FILE * fp)
... {
wchar_t wch = 0;
wchar_t wch_H = 0;
wch = fgetc(fp);
if(wch != WEOF)
...{
wch_H = fgetc(fp);
if(wch_H != WEOF)
...{
wch += wch_H << 8;
}
}
return wch;
}
wchar_t fgetdb(FILE * fp)
... {
wchar_t wch = 0;
wchar_t wch_H = 0;
wch = fgetc(fp);
if(wch != WEOF)
...{
wch_H = fgetc(fp);
if(wch_H != WEOF)
...{
wch += wch_H << 8;
}
}
return wch;
}
[完]
//