设为首页 加入收藏

TOP

2.5.4 使用CRT库的宽字符版本
2013-10-07 00:50:20 来源: 作者: 【 】 浏览:69
Tags:2.5.4 使用 CRT 字符 版本

2.5.4  使用CRT库的宽字符版本

标准C++(www.cppentry.com)引入了宽字符wchar_t,用来表达像中文这样的宽文本,对应地,与字符(char)相关的CRT库函数基本上都有其宽字符(wchar_t)版本。

  1. FILE *_wfopen(   
  2.    const wchar_t* filename,   
  3.    const wchar_t* mode   
  4. );  
  5.  
  6. int fwprintf(   
  7.    FILE* stream,   
  8.    const wchar_t* format [, argument ]...  
  9. );  
  10.  
  11. int fwscanf(   
  12.    FILE* stream,   
  13.    const wchar_t* format [, argument ]...   
  14. ); 

现在动手

接下来,我们体验如何采用CRT库函数的宽字符版本来操作文件,并输出茴字。

【程序 2-14】使用CRT的宽字符版本输出茴字

  1. 01  #include "stdafx.h" 
  2. 02  #include <cstdio>  
  3. 03  #include <clocale>  
  4. 04    
  5. 05  int main()  
  6. 06  {  
  7. 07      setlocale(LC_ALL, "chs");  
  8. 08    
  9. 09      //写入文件  
  10. 10      FILE * fp = _wfopen(L"test.out", L"w,ccs=UNICODE");  
  11. 11      fwprintf(fp, L"%s", L"茴香豆的茴");  
  12. 12      fclose(fp);  
  13. 13    
  14. 14      //读取文件  
  15. 15      fp = _wfopen(L"test.out", L"r,ccs=UNICODE");  
  16. 16      wchar_t line[256];  
  17. 17      fwscanf(fp, L"%s", line);  
  18. 18      wprintf(L"%s\r\n", line);  
  19. 19      fclose(fp);  
  20. 20      return 0;21 } 

光盘导读

该项目对应于光盘中的目录"\ch02\ CrtWcharWriter"。

提示

注意以上代码中setlocale()的用法,它将当前的时区设定为"chs",即采用简体中文编码方式。如果读者忘记了该行,那么像wprintf()这样的函数很有可能无法正确输出宽字符。

【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇《把脉VC++》2008十大IT图书作者.. 下一篇2.5.3 使用CRT(C运行时期库)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: