[問題] 處理unicode檔案的問題@@~

看板C_and_CPP作者 (秘密ID)時間14年前 (2010/04/03 20:42), 編輯推噓4(408)
留言12則, 7人參與, 最新討論串1/1
最近我在windows上寫一個unicode的程式~ 才發現unicode的程式不像我想的這麼簡單~QQ~ 我在版上爬文過後~大致上瞭解 1.讀進來的char要用wchar_t來接 2.一些function要加上w(表示這function是寬字元) e.q.: wprintf, swprintf... 3.在處理時要加上L or l e.q.:wprintf(L"%lc %lc\n",line[count][count2],C); 所以我想問以下的問題(開發環境為dev C++ 4.9.9.2): 1. 有沒有什麼function是可以一次讀進來unicode一行的? (我想要做到fgets的功能) 2. const wchar_t *a[] ={" "," "," 〔 ; ; "," 〕"}; 以上的宣告為什麼會出現warning? 當我宣告成 const wchar_t *a[] ={L" ",L" ",L" 〔 ; ; ",L" 〕"}; 時他卻又說有錯~QQ~ 3. 我想要比對程式中是否有TAB(也就是'\t')出現 那麼我用 const wchar_t me = L'\t'; wchar_t line[5][1000]; ... if(line[count][count2]==me) { } 這樣對嗎? 還是他有類似strcmp之類的function可以拿來比對? 4. 如果line[count][count2]是'\t'的話 那麼 line[count][count2]=L'\0'; count3 =swprintf(line[count+1],1000,L"%ls%ls%ls", line[count], a[count], (line[count]+count2+1)); 這樣做對嗎? 以上的程式碼我要做的是: line[count] 裡存的是 "abc def" 字串 a[count]存的是 "][" 字串 line[count+1] 就會存 "abc][def" 字串 5. 最後問一下~ 要怎麼讓存回去的資料也是unicode? fwprintf(op2,"%s",line[count+1]); 他說 67 G:\a.c [Warning] passing arg 2 of `fwprintf' from incompatible pointer type 煩請知道的人告知 m(_._)m -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.133.212.1

04/04 02:43, , 1F
編譯環境設定?
04/04 02:43, 1F

04/04 02:50, , 2F
strcmp -> wcscmp
04/04 02:50, 2F

04/04 04:41, , 3F
5. L"%s"
04/04 04:41, 3F

04/04 04:41, , 4F
這你自己就有說了....
04/04 04:41, 4F

04/04 04:53, , 5F
5. Unicode存檔記得寫0xff, 0xfe
04/04 04:53, 5F

04/04 08:26, , 6F
我不知環境設定要怎麼樣耶~@@~
04/04 08:26, 6F

04/04 08:26, , 7F
我有查到有setLocal();是指這個嗎?
04/04 08:26, 7F

04/04 08:27, , 8F
二樓~謝謝你~~:)
04/04 08:27, 8F

04/04 08:27, , 9F
三樓~我倒忘了寫回去也要加L了~Orz
04/04 08:27, 9F

04/04 08:27, , 10F
五樓~請問一下那二個要寫在那裡@@?
04/04 08:27, 10F

04/04 18:47, , 11F

04/04 23:02, , 12F
建議是用_T(""),會比用L""好一點。
04/04 23:02, 12F
文章代碼(AID): #1BjpV38Z (C_and_CPP)