集结号手机短信充值:linux 下g++ 编译,中文输入输出
来源:百度文库 编辑:九乡新闻网 时间:2024/05/01 21:38:49
linux 下g++ 编译,中文输入输出2009-12-18 16:561、
在linux下用g++编译可以指定三个文件编码
-finput-charset=
这个是指定输入文件的编码的,如果源代码中含有中文字符串,需要正确指定,默认是使用locale的编码,因此你用当前的locale写源代码,直接g++就可以了。
-fexec-charset=
这个指定产生的可执行文件的字符编码,类似java的class文件,不过java的class文件只能是utf8,而这里可以选择,如果input-charset不指定,这个也不指定,默认采用locale。但是如果指定了input-charset,则这个默认就是UTF8了。
-fwide-exec-charset=
这个一般不用管,除非你想用宽字符编程,并且想修改默认实现方式。
2、窄字符的中文输入输出
一般问题不大,只要编译环境,运行环境的locale一致,一般没有问题。
3、宽字符的中文输入输出
c中可以设置setlocale(LC_ALL,"");
然后用wprintf(L"%ls\n", L"中文");即可
或者用wprintf(L"%S\n", L"中文");
printf("%ls\n", L"中文");
printf("%S\n", L"中文");
c++中用wcout, wcin
需要做如下设置:
ios_base::sync_with_stdio(false);//这行必须有
wcin.imbue(locale(""));
wcout.imbue(locale(""));
4、宽字符串用sizeof测长度,可以发现一般是每个字符占4个字节。
5、窄字符串则根据exec-charset的不同而不同。
在linux下用g++编译可以指定三个文件编码
-finput-charset=
这个是指定输入文件的编码的,如果源代码中含有中文字符串,需要正确指定,默认是使用locale的编码,因此你用当前的locale写源代码,直接g++就可以了。
-fexec-charset=
这个指定产生的可执行文件的字符编码,类似java的class文件,不过java的class文件只能是utf8,而这里可以选择,如果input-charset不指定,这个也不指定,默认采用locale。但是如果指定了input-charset,则这个默认就是UTF8了。
-fwide-exec-charset=
这个一般不用管,除非你想用宽字符编程,并且想修改默认实现方式。
2、窄字符的中文输入输出
一般问题不大,只要编译环境,运行环境的locale一致,一般没有问题。
3、宽字符的中文输入输出
c中可以设置setlocale(LC_ALL,"");
然后用wprintf(L"%ls\n", L"中文");即可
或者用wprintf(L"%S\n", L"中文");
printf("%ls\n", L"中文");
printf("%S\n", L"中文");
c++中用wcout, wcin
需要做如下设置:
ios_base::sync_with_stdio(false);//这行必须有
wcin.imbue(locale(""));
wcout.imbue(locale(""));
4、宽字符串用sizeof测长度,可以发现一般是每个字符占4个字节。
5、窄字符串则根据exec-charset的不同而不同。
linux 下g++ 编译,中文输入输出
Linux下的重定向输入输出
linux下编译和安装log4cxx
Linux系统下中文显示为方块
Linux apache编译安装
Linux操作系统下以太网卡的安装及配置-Linux教程-Linux系统中文网
linux下同时编辑(不是编译哦!)多个c文件命令
Linux 下执行sql脚本 中文乱码问题
WINCE下编译STLPort
[转]Android编译环境(1) - 编译Native C的模块,Linux技术文章,Linux系列教程,Linux
实战linux内核编译 - qqread.com
在Linux上交叉编译windows程序
请教,linux下,C/C 编程时候默认的中文编码是什么? - Linux/Unix社区 / 程序开发区
Redhat RHEL AS3 下安装 Oracle DB 10g 中文乱码问题的解决
Linux怎样编写和编译动态库1
arm-linux,arm-elf-交叉编译环境下载地址
Linux下配置网络
linux 下安装 oracle
linux下安装oracle9i1
Linux下SH执行
linux下查找文件
Linux 下的 ACL
LINUX下GDB调试
Linux下的EditPlus