找回密码
 欢迎注册
查看: 11629|回复: 5

[提问] 关于MinGW的宽字符串输出问题

[复制链接]
发表于 2011-4-5 11:38:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
用 MinGW编译器,想打印一个“你好,世界”。
真折腾,到现在还没解决,
有谁清楚吗,Help!!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2011-4-5 21:33:03 | 显示全部楼层
找到一种可行的方案了:
  1. #include <iostream>
  2. using namespace std;
  3. int main(){
  4.   wcout << setlocale(LC_ALL, "chs" )
  5.   <<endl<<L"还是不行吗" << endl;
  6. }  
复制代码
g++ test.cpp -finput-charset=GBK
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-6-17 21:12:51 | 显示全部楼层

  1. #include <string>
  2. #include <locale>
  3. using namespace std;


  4. void main()
  5. {
  6. unsigned int n, d[9];
  7. int pre, i, high, low;
  8. wchar_t c[11] = L"零一二三四五六七八九";
  9. wchar_t p[11] = L"个十百千万十百千亿";

  10. for (i = 0; i < 9; i ++) d[i] = 0;
  11. cout << "请输入数字 :";
  12. cin >> n;
  13. if (n >= 1000000000)
  14. {
  15. cout << "输入数字过大"<<endl;
  16. exit(1);
  17. }
  18. i = 0;  while (n > 0)
  19. {
  20.         d[i++] = n % 10;
  21.         n /= 10;
  22. }
  23.     high = i-1; //最高位
  24.     low = 0; //最低位   while (d[low] == 0)  low ++;locale loc( "chs" );
  25. wcout.imbue(loc);


  26. cout << endl << "大写形式:";if (n == 0) { cout << "零" << endl; exit(0);   } //特殊处理零
  27.     pre = 0;
  28. for (i = high; i >= low; i --)
  29. {
  30. if (d[i] > 0)
  31.   {   wcout << c[d[i]];   if (i > 0)  wcout << p[i];  }
  32. else
  33. if (pre)
  34. wcout << L"零";
  35.    pre = (d[i] != 0);
  36. }
  37. }
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-8-28 09:01:35 | 显示全部楼层
这个帖子要收藏一下,以后用得到
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-4-25 08:44 , Processed in 0.123150 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表