C++輸入輸出漢字具體應(yīng)用技巧分享
在C++編程語(yǔ)言中,對(duì)于中文字符的處理方式有很多種,開(kāi)發(fā)人員可以根據(jù)自己不同的需求來(lái)選擇一種適合自己的方式。比如今天為大家介紹的C++輸入輸出漢字的實(shí)現(xiàn)方法,就是其中一個(gè)比較簡(jiǎn)單的方式。
C++里面用L宏的時(shí)候只是說(shuō)是寬字符,但是并不一定是Unicode,也就是說(shuō)具體使用什么字符集要程序員自己去設(shè)定,這就是imbue的作用,那你文件里不能輸入漢字也是這個(gè)問(wèn)題,你只要象下面一樣設(shè)置下就可以了:
- in.imbue(locale("chs"));
- in>>text;
- out.imbue(locale("chs"));
- out<<text;
這樣C++理論上可以處理任何的字符集.
完整修改的C++輸入輸出漢字代碼如下:
你是vc++6.0吧,那你只需要先設(shè)置后打開(kāi)文件就可以了,這是一個(gè)已知的BUG;代碼如下:
- #define _UNICODE
- #include <iostream>
- #include <fstream>
- using namespace std;
- void main()
- {
- wchar_t text=L'我'; //這是調(diào)試看text沒(méi)問(wèn)題,就是“我”字
- wofstream out;
- wifstream in;
- in.imbue(locale("chs"));
- in.open("input.txt");
- in>>text;
- in.close();
- out.imbue(locale("chs"));
- out.open("output.txt");
- out<<text;
- out.close();
- wcout.imbue(locale("chs")); //如果把上面兩行去掉,下面是對(duì)的
- //需要設(shè)置imbue才能輸出中文字符,不過(guò)還是不懂imbue是干什么的?
- wcout <<"this is "<<text << endl;
- system("PAUSE");
- }
以上就是對(duì)C++輸入輸出漢字的相關(guān)操作介紹。
【編輯推薦】