博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
codeblocks如何支持_tmain?可移植代码的编码推荐
阅读量:4879 次
发布时间:2019-06-11

本文共 1380 字,大约阅读时间需要 4 分钟。

codeblocks默认源代码文件编码根据OS而定,编译时编码UTF-8。 在你不更改任何codeblocks配置时:                    在WINDOWS中:源代码——WINDOWS-936(即GBK),编译后文件默认UTF-8 而输出windows会按GBK来解释             ,所以从GBK->UTF-8->GBK就是乱码; 在LINUX中:源代码——UTF-8,自然从源代码到编译到输出都是UTF-8,因此没有乱码; WINDOWS中:设置如下settings->compiler->Other options中增加2条命令 -finput-charset=GBK编译时用GBK格式 不指定默认UTF-8 -fexec-charset=GBK生成执行文件时用GBK格式  不指定默认UTF-8

UTF-8是变长编码,一个字符可能是1至4字节,处理起来不太方便。 于是Linux等平台也提供了wchar_t类型,只不过它是32位的,在Windows平台中它是16位。

为了保证代码的可移植性,推荐使用UTF-8编码来保存代码文件。 因现在Linux等类UNIX平台默认使用UTF-8编码,gcc等编译器也是默认使用UTF-8编码。 而且它们既支持“不带BOM的UTF-8”(byte order mark,字节序标记),又支持“带BOM的UTF-8”。 VC++ 2003(或更高)开始支持“带BOM的UTF-8”编码的代码文件,但不支持“不带BOM的UTF-8”编码的代码文件 ,会被误认为系统默认编码(如简体中文平台上会误认为GBK编码)。

1.4 _tmain入口函数问题   标准C使用main函数作为程序入口,其格式为——int main(int argc, char* argv[])   VC++考虑到到TCHAR类型的命令行参数,于是又定义_tmain程序入口,其格式为——int _tmain(int argc, TCHAR* argv[])   目前VC++对_tmain的支持较好,而MinGW等编译器对_tmain较差,其只支持C标准的main。     如果想用_tmain则需要在工程中引入 文件    // tchar.h中有类似如下的定义    #ifdef   _UNICODE      #define   _tmain   wmain      #define   _tWinMain   wWinMain      #else      #define   _tmain   main      #define   _tWinMain   WinMain      #endif

C 和 C++ 的标准库分别有自己的 locale 操作方法, C 标准库的 locale 设定函数是 setlocale(), 而 C++ 标准库有 locale 类和流对象的 imbue() 方法 #include <locale.h> char* setlocale(int category, const char* locale);

在Linux下,可以使用locale -a 命令查看系统中所有已配置的 locale。 用不带选项的 locale 命令查看当前 Shell 中活动的 locale。 用 locale -m 命令查看locale系统支持的所有可用的字符集编码。

转载于:https://www.cnblogs.com/zxpo/p/3586374.html

你可能感兴趣的文章
luogu P3410 拍照
查看>>
Mysql单表查询(胖胖老师)
查看>>
Linux的基本命令(CentOS)
查看>>
超链接的几个样式
查看>>
asp.net mvc验证特性
查看>>
接口interface和抽象类型abstract
查看>>
【高精度】贝贝与国王
查看>>
Math
查看>>
git安装配置
查看>>
从CPU的运行到函数调用做个了解
查看>>
(译)你应该知道的jQuery小技巧
查看>>
记录一次无聊的(经历了Nodejs -> Shell -> C)的探索问题过程
查看>>
接口请求失败处理,重新请求并限制请求次数.自己封装搞定retry函数
查看>>
C# 数据库连接增删改查
查看>>
Xcode 最近使用的一些问题
查看>>
JSP 自定义标签
查看>>
PHP 使用PHPExcel删除Excel单元格指定列
查看>>
mac10.12.6系统使用cmake安装opencv3.3.0+opencv_contrib-3.3.0
查看>>
ACM_水题你要信了(修改版)
查看>>
题解报告:hdu 1087 Super Jumping! Jumping! Jumping!
查看>>