在C++編程語言中,對於中文字符的處理方式有很多種,開發人員可以根據自己不同的需求來選擇一種適合自己的方式。比如今天為大家介紹的C++輸入輸出漢字的實現方法,就是其中一個比較簡單的方式。
C++裡面用L宏的時候只是說是寬字符,但是並不一定是Unicode,也就是說具體使用什麼字符集要程序員自己去設定,這就是imbue的作用,那你文件裡不能輸入漢字也是這個問題,你只要象下面一樣設置下就可以了:
- in.imbue(locale("chs"));
- in>>text;
- out.imbue(locale("chs"));
- out<<text;
這樣C++理論上可以處理任何的字符集.
完整修改的C++輸入輸出漢字代碼如下:
你是vc++6.0吧,那你只需要先設置後打開文件就可以了,這是一個已知的BUG;代碼如下:
- #define _UNICODE
- #include <iostream>
- #include <fstream>
- using namespace std;
- void main()
- {
- wchar_t text=L'我'; //這是調試看text沒問題,就是“我”字
- 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")); //如果把上面兩行去掉,下面是對的
- //需要設置imbue才能輸出中文字符,不過還是不懂imbue是干什麼的?
- wcout <<"this is "<<text << endl;
- system("PAUSE");
- }
以上就是對C++輸入輸出漢字的相關操作介紹。