LInux下使用mbstowcs函数可以将char转化为wchar_t

函数含义:convert a multibyte string to a wide char string

说明:       The behaviour of mbstowcs depends on the LC_CTYPE category of the current locale

返回值:   The  mbstowcs() function returns the number of wide characters that make up the converted part of the wide-char-acter string, not including the terminating null wide character.  If an invalid multibyte sequence  was  encountered, (size_t) -1 is returned.

1 #include

2 #include

3 #include

4 #include

5 #include

6 #include

7 using namespacestd;

10 //将char类型转化为wchar13 //locale: 环境变量的值,mbstowcs依赖此值来判断src的编码方式

11 int ToWchar(char* &src, wchar_t* &dest, const char *locale = "zh_CN.utf8"){18 if (src ==NULL) {19 dest =NULL;20 return 0;21 }

23 //根据环境变量设置locale

24 setlocale(LC_CTYPE, locale);

26 //得到转化为需要的宽字符大小

27 int w_size = mbstowcs(NULL, src, 0) + 1;

29 //w_size=0说明mbstowcs返回值为-1。即在运行过程中遇到了非法字符(很有可能使locale没有设置正确)

31 if (w_size == 0) {32 dest =NULL;33 return -1;34 }

36 wcout << "w_size" << w_size <

42 int ret = mbstowcs(dest, src, strlen(src)+1);43 if (ret <= 0)return -1;46 return 0;47 }

49 intmain(){51 char* str = "中国123";52 wchar_t *w_str ;53 ToWchar(str,w_str);54 wcout << w_str[0] << "--" << w_str[1] << "--" << w_str[2];55 delete(w_str);56 return 0;57 }

1 #include

2

3 int main(void){5 inti_number, result;6 floatf_number;7 char c_number, str[81];8 wchar_t wc_str, ws_str[81];

10 printf( "\n\nEnter an int, a float, two chars and two strings\n");

12 result = scanf( "%d %f %c %C %s %S",

&i_number, &f_number, &c_number, &wc_str, str, ws_str );13 printf( "\nThe number of fields input is %d\n",

result );14 printf( "The contents are: %d %f %c %C %s %S\n",

i_number, f_number, c_number, wc_str, str, ws_str);

16 wprintf( L"\n\nEnter an int, a float, two chars and two strings\n");

18 result = wscanf( L"%d %f %hc %lc %S %ls",

&i_number, &f_number, &c_number, &wc_str, str, ws_str );19 wprintf( L"\nThe number of fields input is %d\n",

result );20 wprintf( L"The contents are: %d %f %C %c %hs %s\n",

i_number, f_number, c_number, wc_str, str, ws_str);21 }

原文:http://www.cnblogs.com/wulangzhou/p/4538910.html

linux wchar t char,linux 下 Linux 下char转换为wchar_t相关推荐

  1. Linux环境下实现unsigned char*向string的转换

    代码 unsigned char input_data[input_data_length] = {"This is my first encrypted plaintext hello w ...

  2. linux创建隐藏进程6,在Linux 2.6内核下实现进程隐藏

    很早以前的小程序,比较简单但是觉得有趣 原理很简单,Linux查看进程的命令ps是通过系统调用sys_getdents实现,sys_getdents用户获取一个指定路径下的目录条目,实际上就是枚举 / ...

  3. linux i2c子系统看不懂啊,Linux 下的I2C子系统

    Linux 下的I2C子系统 2013.7.16 本文分为两部分,一.设备模型 二.平台相关 . ================================================ 第一 ...

  4. 解决Windows下Arm下Linux下Qt4程序的中文乱码问题

    解决Windows下Arm下Linux下Qt4程序的中文乱码问题 ################################################################### ...

  5. linux c++ 获取时间,详解Linux下的C++时间类型:time_t

    Unix时间戳(Unix timestamp),或称Unix时间(Unix time).POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00 ...

  6. linux 查看emmc分区表_Linux和Uboot下eMMC boot分区读写

    关键词:eMMC boot.PARTITION_CONFIG.force_ro等. 1. eMMC的分区 大部分eMMC都有类似如下的分区,其中BOOT.RPMB和UDA一般是默认存在的,gpp分区需 ...

  7. linux获取网卡协议地址,读取linux下的网络设备的mac地址与发送原始数据包 (2011-11-23 20:11)...

    一:linux下的网络设备 linux的网络设备信息都在/proc/net/dev,从这里我们可以得到所有网卡的名字,如eth0, eth1等等 root@dlrc-desktop:/home/dlr ...

  8. 【嵌入式Linux学习七步曲之第五篇 Linux内核及驱动编程】Oops在Linux 2.6内核+PowerPC架构下的前世今生

    Oops在Linux 2.6内核+PowerPC架构下的前世今生 Sailor_forever  sailing_9806#163.com (本原创文章发表于Sailor_forever 的个人blo ...

  9. Linux内核及内核编程之五Linux下的C编程特点

    3.5 Linux下的C编程特点 3.5.1 Linux编码风格 Linux有独特的编码风格,Linux程序的命名习惯和Windows程序的命名习惯及著名的匈牙利命名法有很大的不同.在Windows程 ...

  10. 【嵌入式环境下linux内核及驱动学习笔记-(16)linux总线、设备、驱动模型之input框架】

    目录 1.Linux内核输入子系统概念导入 1.1 输入设备工作机制 1.2 运行框架 1.3 分层思想 2.驱动开发步骤 2.1 在init()或probe()函数中 2.2 在exit()或rem ...

最新文章

  1. 高小明的云平台搭建系列之一——物理机装 ESXi 5.0
  2. 深度学习NCHW和NHWC数据格式(由三维数据转换成一维数据的遍历方式)
  3. css 网页整体缩小_css实现缩放自适应网页--手机web
  4. 征集大家的网站如何防范DDOS攻击解决方案
  5. 【渝粤教育】广东开放大学 计算机硬件组装与维护 形成性考核 (38)
  6. 数学建模——matlab基本使用
  7. 【软件下载】Axure8.1正式版(含汉化包)
  8. 多道程序设计有哪些新特性呢?它又是如何实现程序的并发执行的呢?
  9. 图像直方图均衡 matlab,图像直方图均衡化
  10. android面试之怎么把图片变成圆形
  11. 常见14种手机传感器
  12. Java8 ,LocalDate,LocalDateTime处理日期和时间工具类,
  13. 用DirectX做2D游戏的三种方法
  14. 2023年消费电子行业研究报告
  15. xp系统计算机语言设置,XP系统语言栏不见了解决方法
  16. 线性代数 --- 投影Projection 六(向量在子空间上的投影)
  17. linux命令如何查询某个线程,linux如何查看线程信息命令是什么
  18. 网络工程师【软考】01
  19. python编程输入名字配对情侣网名_定制情侣网名输入自己名字情侣
  20. 曲刚快步英语发音规则对没有英语基础的人有救吗?

热门文章

  1. STM32串口第一个字节丢失问题的分析过程
  2. 从源码分析DEARGUI之add_tree_node
  3. virtualbox+vagrant学习-2(command cli)-16-vagrant snapshot命令
  4. oracle中max,listagg使用,需求:求门诊开甲功三项的病人的基本信息与化验结果的数据,...
  5. Scala花括号和圆括号的区别
  6. Mysql ERROR 145 (HY000)
  7. 使用SQL如何把用逗号等字符隔开的字符串转换成列表,以及把列合并成符合隔开的字符串(转)...
  8. 【c语言】模拟库函数strstr
  9. UVA 1471 Defense Lines 防线 (LIS变形)
  10. CentOS下LAMP实战与心得