/*  做本程序遇到的问题:由于使用的是CODE::BLOCKS 开发环境,刚开始使用code::blocks是,什么都
没有设置,居然输入的中文字符串,保存项目后,再次打开,code::blocks不能正确识别源文件编码,没能识别
成:936中文代码页,而是 10** 什么的,打开后中文区域就是乱码. 后来找到设置,发现是没有强制指定用户
需要的代码页所致,后来设置为强制就OK了,{不过,把源文件改成UTF8,来保存也是可以的(因为编辑器默认是UTF-8来打开),但是COUT<<"中华人民共和国"}
这样的中文字符串时,控制台输出为乱码(编译器又带来了编码不匹配),因为控制台默认不支持UTF8,或codeblock本地化做的不好的缘故,按道理
可以改控制台为chcp 65001是可以看到中文的,但codeblocks看不到.
只有指定编译参数:-fexec-charset=GBK
-finput-charset=UTF-8
这样就可以强制输出的exe为GBK运行编码而不是UTF运行编码了.就可以正确显示中文了,
如果还要搞Wchar_t的UNICODE 还需要setlocal(lc_all,"chs"),并且要么源文件是UTF-8,要么-finput-charset设置为GBK,否则编译期就要报错.........
////////////////////////////////////////////////////////////////////////////////////////////////// 网上查到的关于codeblocks编译器,编码的问题解释: 1.Code::Blocks 编辑器保存源文件用的编码。
默认情况下,是保存为windows本地编码的,也就是WINDOWS-936字符集,也就是GBK编码。
但是很神奇的是,GCC编译器默认编译的时候是按照UTF-8解析的。你存成GBK,但是当成UTF-8解析,这还能编译通过,这才有鬼了,所以这两个地方编码不统一好,编译的时候报错:error: converting to execution character set: Illegal byte sequence,你根本连通过编译的可能性都没有!
其实要解决这个问题很简单,编写Code::Blocks的人只需要在调用编译器之前检测一下源文件是什么编码,然后就自动让编译器用什么编码进行解释,问题就解决了。只是很可惜,Code::Blocks编写的人可能还没有这么做,或许是对本地化认识不够吧,也可能是觉得没必要吧?(所以就给初学的人带来问题了,所以就觉得易用性不如微软了,免费和商业的东西还是有差距的。。。) 2。GCC编译器编译的时候对输入的源文件解释用的编码
这个编译器可以设置-finput-charset=charset来指定编译器用什么编码解释输入源文件。比如如果源文件的字符集是GBk,那么就必须指定-finput-charset=GBK,如果不指定,一律当做UTF-8处理。
除非你源文件真的是UTF-8,否则就会出现转换错误。 3。编译好的执行文件所用编码
如果你1和2两个地方的编码都能统一,那么编译时不会报错了,但是编译好了,运行一下看看,在控制台显示的依然是乱码!
那是因为控制台显示的时候缺省的是使用系统默认的字符集,比如windows下用的是GBk,但是默认情况下,编译之后的执行文件时编译成UTF-8的,所以又出现了不统一,乱码由此而生!
解决的方法和简单,就是给编译器加上选项:-fexec-charset=GBK,和windows默认的统一,就OK了。 搞懂了乱码产生的原因,那么不难得出结论,如何修改,你想修改成什么都OK,关键是要统一,并不是像网上一些人说的,修改成GBK就OK,其实你要修改成UTF-8都OK,关键是统一。 */
#include <stdio.h>
#include <iostream>
#include <windows.h>
using namespace std; ///////////////////////////////////////////////////////////////////////////////
//最简单的类模版
template <class M>
class A
{
M ta;
public:
A(M x):ta(x) //这里很有特点,可以在构造函数的初始化表中初始化本类的成员变量.
{
ta=x; //用这种方法也是一样的,但可以认为不是初始化,而是赋值.
//区别是:任何类型的const和引用数据成员必须在初始化表中初始化,
//如果在构造函数内部进行初始化就会产生编译时刻错误.
} void print();
}; template <class M>
void A<M>::print()
{
cout<<ta<<endl;
}
/////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////
//测试普通类也是可以通过构造函数初始化表中初始化类成员变量.
class test
{
private:
int a,b;
public:
test(int x):a(x),b(x)
{
a=;
b=;
}; void pr(); }; void test::pr()
{
cout<<a<<" "<<b<<" "<<endl;
} ////////////////////////////////////////////////////////////////////////////////////// int main()
{ setlocale(LC_ALL,"chs"); wchar_t a=L'陈'; //printf("%d",(WORD)a);
//printf("%d",HIBYTE(a));
//printf("%d",LOBYTE(a)); //wchar_t a=L'陈';
//printf("%d\n",(WORD)a);
//printf("%d\n",HIBYTE(a));
//printf("%d\n",LOBYTE(a)); char * b = "陈佑忠";
cout<<b<<endl;
MessageBoxA(,b,b,);
wcout<<a<<endl; int m(',');
cout<<m<<endl; test t();
t.pr(); A<float> ok(58.226);
ok.print(); return ;
}

code::blocks 初使用遇到的问题记录的更多相关文章

  1. 从Script到Code Blocks、Code Behind到MVC、MVP、MVVM

    刚过去的周五(3-14)例行地主持了技术会议,主题正好是<UI层的设计模式——从Script.Code Behind到MVC.MVP.MVVM>,是前一天晚上才定的,中午花了半小时准备了下 ...

  2. Code Blocks+gtest环境配置

    本文仅介绍Code::Blocks+gtest环境配置,gtest具体使用方法请参考: 玩转Google开源C++单元测试框架Google Test系列(gtest)(总) http://www.cn ...

  3. VC++6.0 IDE的工程用Code::Blocks来打开、编译、调试终极配置方案

    本篇文章转自 CSDN blog,转载请注明出处! 原文地址: http://blog.csdn.net/liquanhai/article/details/6618300 引子:竟然可以用Code: ...

  4. Code Blocks中配置OpenGL方法

    关于在Code Blocks中配置OpenGL的方法,在网上一直没有找到实用的方法,后来在马龙师兄的帮助下终于配置成功了,现把配置过程记录如下. (1)下载codeblocks,最好是带mingw的版 ...

  5. 从Script到Code Blocks、Code Behind到MVC、MVP、MVVM(转载)

    http://www.cnblogs.com/indream/p/3602348.html 刚过去的周五(3-14)例行地主持了技术会议,主题正好是<UI层的设计模式——从Script.Code ...

  6. code blocks 安装与实践

    背景 因为不是主要修习C/C++,仅用于写算法和数据结构,code blocks轻量但是安装老是出现问题,故有此记录 安装 官方地址:http://www.codeblocks.org/downloa ...

  7. 配置code::blocks的glut环境

    code::blocks很小,特别适合小型项目及家用旧电脑上MingW下编程,当然windows还是安装的Visual Studio办公用的,现把配置过程记录一遍. 1.在百度搜code::block ...

  8. EF Code First 初体验

    Code First 顾名思义就是先代码,再由代码生成数据库的开发方式. 废话不多说,直接来一发看看:在VS2010里新建一个空白解决方案,再依次添加两个类库项目:Model.DataAccess和一 ...

  9. 使用Code::blocks在windows下写网络程序

    使用Code::blocks在windows下写网络程序 作者 He YiJun – storysnail<at>gmail.com 团队 ls 版权 转载请保留本声明! 本文档包含的原创 ...

随机推荐

  1. 3.css中的颜色

    css中颜色的设置形式主要有三种方式:颜色名称.十六进制代码和十进制代码. 在古老的 HTML4 时,颜色名称只有 16 种. 颜色名称 十六进制代码 十进制代码 含义  black  #000000 ...

  2. Hive深入浅出

    1.  Hive是什么 1) Hive是什么? 这里引用 Hive wiki 上的介绍: Hive is a data warehouse infrastructure built on top of ...

  3. Tutorial: Analyzing sales data from Excel and an OData feed

    With Power BI Desktop, you can connect to all sorts of different data sources, then combine and shap ...

  4. minihttp http://www.acme.com/software/mini_httpd/

    1.安装mini_httpd 1.1把下载的mini_httpd-1.19.tar.gz拷贝到根目录   1.2 解压tar -xvfzmini_httpd-1.19.tar.gz ,会在根目录产生一 ...

  5. iOS-打包成ipa

    第一步:模拟器选择栏,选择"Generic iOS Device ".早期版本需要断开手机连接,才可以找到. 第二步:选择"Product"菜单下的" ...

  6. [quote ]ffmpeg, gstreamer, Raspberry Pi, Windows Desktop streaming

    [quote ]ffmpeg, gstreamer, Raspberry Pi, Windows Desktop streaming http://blog.pi3g.com/2013/08/ffmp ...

  7. verilog简易实现CPU的Cache设计

    verilog简易实现CPU的Cache设计 该文是基于博主之前一篇博客http://www.cnblogs.com/wsine/p/4661147.html所增加的Cache,相同的内容就不重复写了 ...

  8. 【上传AppStore】iOS项目上传到AppStore步骤流程(第三章) - 基本信息总汇

    一.App ID(bundle identifier) App ID即Product ID,用于标识一个或者一组App. App ID应该和Xcode中的Bundle Identifier是一致(Ex ...

  9. vim替换及多行注释命令

    1.多行注释: . 进入命令行模式,按ctrl + v进入 visual block模式,然后按j, 或者k选中多行,把需要注释的行标记起来 . 按大写字母I,再插入注释符,例如// . 按esc键就 ...

  10. 团队开发——Alpha版总结会议

    本组目前存在的问题: 1.在选题的时候,题目选的比较有难度,造成后期工作量较大,实现有难度(未能正确估计项目的难度). 2.最初规划时,设计的功能较多,但是技术水平达不到,导致目前完成功能较少. 3. ...