程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++輸入輸出漢字具體應用技巧分享

C++輸入輸出漢字具體應用技巧分享

編輯:C++入門知識

在C++編程語言中,對於中文字符的處理方式有很多種,開發人員可以根據自己不同的需求來選擇一種適合自己的方式。比如今天為大家介紹的C++輸入輸出漢字的實現方法,就是其中一個比較簡單的方式。

C++裡面用L宏的時候只是說是寬字符,但是並不一定是Unicode,也就是說具體使用什麼字符集要程序員自己去設定,這就是imbue的作用,那你文件裡不能輸入漢字也是這個問題,你只要象下面一樣設置下就可以了:

  1. in.imbue(locale("chs"));   
  2. in>>text;   
  3. out.imbue(locale("chs"));   
  4. out<<text;  

這樣C++理論上可以處理任何的字符集.

完整修改的C++輸入輸出漢字代碼如下:

你是vc++6.0吧,那你只需要先設置後打開文件就可以了,這是一個已知的BUG;代碼如下:

  1. #define _UNICODE   
  2. #include <iostream>   
  3. #include <fstream>   
  4. using namespace std;   
  5. void main()   
  6. {   
  7. wchar_t text=L'我'; //這是調試看text沒問題,就是“我”字   
  8. wofstream out;   
  9. wifstream in;   
  10. in.imbue(locale("chs"));   
  11. in.open("input.txt");   
  12. in>>text;   
  13. in.close();   
  14. out.imbue(locale("chs"));   
  15. out.open("output.txt");   
  16. out<<text;   
  17. out.close();   
  18. wcout.imbue(locale("chs")); //如果把上面兩行去掉,下面是對的   
  19. //需要設置imbue才能輸出中文字符,不過還是不懂imbue是干什麼的?   
  20. wcout <<"this is "<<text << endl;   
  21. system("PAUSE");   

以上就是對C++輸入輸出漢字的相關操作介紹。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved