wprintf不能在linux下输出的问题

转载 2012年03月27日 09:21:44

这两天在wprintf linux下输出的问题上花了很多时间,在网上找了很多方法,试了一下根本就不能用,今天终于在师兄的帮助下解决了。

wprintf是专门为宽字节字符wchar_t设计的输出函数,使用方式是:

wchar_t *wc = L"我是中国人"; wprintf(L"%ls",wc);

wchar_t类型的字符串声明,变量前要加L来标识宽字符串,但好像在有些Linux版本上编译会有问题,输出是格式字符串也要加L,而且格式要是%ls。或者直接不用格式字符串。这种调用方法其实是有用的,但是我却一直没输出成功。今天才知道,原来wprintf和printf是不能混用的,而我前面还用了printf输出其他字符串,所以后面wprintf什么都不输出,网上说原因是printf和wprintf是用的不同的输出流,是不能放在一起用的。这个问题真是害人不浅。

其实不用wprintf只用printf也是能输出宽字符串的,但是可能编译的时候会有警告吧,具体用法是:

printf("%ls",wc);

注意,千万不要把wprintf和printf混用!!!

控制台程序的中文输出乱码问题,printf,wprintf与setlocale

#include #include int main(void) { char str[] = "中文"; wchar_t wstr[] = L"中文"; printf("...

cout,wcout,printf,wprintf等函数的中文输出问题

1、cout和wcout   在缺省的C locale下,cout可以直接输出中文,但对于wcout却不行(至少VS 2005下不行)。对于wcout,需要将其locale设为本地语言才能输出中文:...

翻译《有关编程、重构及其他的终极问题?》——30.Visual C++和wprintf()函数

关于字符的各种编码方式,我始终觉得是任何程序员的一个基础知识,另外不同平台上也需要注意不同的对应处理函数。...
  • headman
  • headman
  • 2017年07月20日 17:48
  • 160

printf和wprintf、printf输出结束标识符、c++按值返回临时对象是否是const的实验

#ifndef _TEST_H #define _TEST_H #include #include using namespace std; int x = 5; struct s { pub...
  • gukesdo
  • gukesdo
  • 2011年11月21日 20:40
  • 1491

Tomcat的项目在windows下能访问而在linux下却不能访问的一个问题解决

1、问题描述 今天把windows下部署的SSH项目复制到linux的tomcat服务器上,发现怎么访问都是报404错误,而此前部署到windows上的tomcat完全可以访问,而且我之前在linu...
  • SQ_Bang
  • SQ_Bang
  • 2017年02月25日 18:16
  • 1799

Linux下安装Android的adb驱动-解决不能识别的问题

转载自http://blog.csdn.net/kangear/article/details/11832549 之前也遇到过,不过是修改的/etc/udev/rules.d/51-android....

关于linux下汉字输出的小问题

windows下的文档在linux下查看,汉字会出现乱码的原因? linux下汉字用utf-8编码,而windows下采用gb2312编码。 所以为了可以正常查看,可用命令将gb2312转化为utf...

C++_wcout / C_wprintf (wcout输出中文)

int _tmain(int argc, _TCHAR* argv[]) {   wcout.imbue(std::locale("chs"));   wstring s = (L"我爱");   w...

iostream、printf/wprintf和中文输出

使用C++标准库的iostream,可以方便地将控制台、文件、字符串以及其它可扩充的外部表示作为流来处理,但要处理中文,却会碰到很多问题。本人原来没怎么用过这个iostream,这几天尝试用这个写点东...

Linux下经常出现的小问题

  • 2013年03月22日 21:47
  • 26KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:wprintf不能在linux下输出的问题
举报原因:
原因补充:

(最多只允许输入30个字)