[問題] 讀unicode檔

看板C_and_CPP作者 (.....)時間14年前 (2011/05/18 20:59), 編輯推噓4(4013)
留言17則, 7人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Visual Studio C++ 6.0 問題(Question): 如何讀取unicode檔案 程式碼(Code):(請善用置底文網頁, 記得排版) #include <stdio.h> #include <tchar.h> void main(){ FILE *input; TCHAR *wcChar=L''; input = _tfopen(_T("test.txt"), _T("rb")); _fgetts(wcChar,1 ,input); _tprintf(_T("%c\n"), wcChar); } 補充說明(Supplement): 最近想嘗試用C來處理中文檔案 所以寫了上面的程式來做測試 可是卻一直無法成功執行 上網搜尋的結果也跟我所寫的差不多 所以想請問 上面的程式是正確的嗎 以下附上錯誤的訊息 Debug Assertion Failed! Program:檔案路徑 File:fget.c Line:59 Expression:string != NULL 看起來像是fget沒有讀到任何東西 可是又不知道該怎麼修改 麻煩各位指導一下 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.217.139.165

05/18 21:01, , 1F
最上面加一行 #define _UNICODE
05/18 21:01, 1F

05/18 21:16, , 2F
謝謝樓上 我加上那行define可是還是遇到同樣的錯誤
05/18 21:16, 2F

05/18 21:19, , 3F
那 TCHAR *wcChar=L''; 改 wchar_t wcChar[1024]; 試試
05/18 21:19, 3F

05/18 21:20, , 4F
我也對那邊有疑問, 這碼怎麼寫成這樣阿, 好噁心
05/18 21:20, 4F

05/18 21:21, , 5F
微軟的 tchar 專門給 C 用的,我都寧願用 CString
05/18 21:21, 5F

05/18 21:28, , 6F
其實我也不知道要怎麼正確的使用 wchar_t 這些東西 orz
05/18 21:28, 6F

05/18 21:31, , 7F
把每個用在 char 的標準函數,比如 strcpy 拿去搜尋
05/18 21:31, 7F

05/18 21:32, , 8F
strcpy wchar_t 就有對應 wchar 版本囉
05/18 21:32, 8F

05/18 22:25, , 9F
每次看到wchar_t和cstring,就會感覺我是新手.那到底是?
05/18 22:25, 9F

05/18 22:30, , 10F
CString 是 ATL/MFC 裡面的東西,要花錢買 VC 才有
05/18 22:30, 10F

05/18 22:30, , 11F
其實還蠻方便的,比 std:string 好用
05/18 22:30, 11F

05/18 23:02, , 12F
雖然我沒用過,不過 std:string 應該有寬字元版本?
05/18 23:02, 12F

05/18 23:03, , 13F
wstring u16string u32string 不過都很爛就是了
05/18 23:03, 13F

05/18 23:03, , 14F
好 Managed C++, 不用嗎?
05/18 23:03, 14F

05/19 03:19, , 15F
好 QString , 不用嗎?
05/19 03:19, 15F

05/19 08:59, , 16F
又開始覺得自己是新手了
05/19 08:59, 16F

05/20 14:14, , 17F
我不用_T與TCHAR,我都用wchar_t。
05/20 14:14, 17F
文章代碼(AID): #1DqyB7Vc (C_and_CPP)