CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

帮我看看这个程序,谢谢

楼主kongkongyu(lulu)2005-08-02 23:05:29 在 C/C++ / C++ 语言 提问

bool   GB2312_Generate(char   *sFileName)  
  {  
        FILE   *fp;  
        unsigned   int   i,j;  
   
        if((fp=fopen(sFileName,"wt"))==NULL)  
        return   false;//fail   while   opening   the   file  
        for(i=161;i<255;i++)  
        for(j=161;j<255;j++)  
        fprintf(fp,"%c%c,%d,%d\n",i,j,i,j);  
        fclose(fp);  
        return   true;  
  }  
   
  最近看了一个C++程序。  
  这个是一个分词上的程序片断,哪位大侠能够详细的介绍一下,谢谢 问题点数:50、回复次数:6Top

1 楼LoveYouJustOneDay(哈哈)回复于 2005-08-02 23:15:20 得分 10

for(i=161;i<255;i++)  
        for(j=161;j<255;j++)  
        fprintf(fp,"%c%c,%d,%d\n",i,j,i,j);  
   
  将中文等字符写入文件  
  你运行一下就知道了  
  中文都是占2字节的  
  Top

2 楼kongkongyu(lulu)回复于 2005-08-03 08:05:24 得分 0

谢谢,确实是将中文字符写入文件,  
  但是fprintf(fp,"%c%c,%d,%d\n",i,j,i,j);     这一行如何解释?怎么变成了中文。谢谢Top

3 楼megaboy(飞天御剑流之杀神一刀斩)回复于 2005-08-03 08:23:58 得分 40

中文的编码方式是使用两个字节表示,高字节表示区号,低字节表示位号,也就是区位码。共有94个区,每个区又有94个位,区号和位号都从0x21开始,一级汉字区号从0x30开始到0x57,二级汉字区号从0x58开始到0x77,这是早期的国标码的编码方法。现在的国标码编码方式是在原来的编码方法加上0x8080得到,也就是说两个字节的最高位恒定为1。最高位(区号)0x21加上0x80就是0xA1,转换成十进制就是161,上面代码的循环就是从161这个区号开始的。  
   
  fprintf(fp,"%c%c,%d,%d\n",i,j,i,j);通过%c%c把中文的两个字节分别输入文件fp里面。Top

4 楼megaboy(飞天御剑流之杀神一刀斩)回复于 2005-08-03 08:40:49 得分 0

再补充一下,下面这段循环是把整个国标码的字符及其区位码都输出到文件fp里面:  
   
  for(i=161;i<255;i++)  
        for(j=161;j<255;j++)  
        fprintf(fp,"%c%c,%d,%d\n",i,j,i,j);  
  Top

5 楼yc0188(守护瓶(萍))回复于 2005-08-03 08:58:52 得分 0

可能是   sFileName   给的有问题...  
  比如没有终结符等....  
  Top

6 楼kongkongyu(lulu)回复于 2005-08-03 09:06:38 得分 0

感谢,给分Top

相关问题

  • 帮我看看这个程序
  • 帮我看一下这个程序.
  • 帮我看一下这个程序.
  • 谁帮我检查这个程序啊?
  • 谁帮我检查这个程序啊?
  • 请帮我看看这个程序
  • 谁能帮我解释这个程序?
  • 帮我看一下这个程序
  • 帮我看看这个程序
  • 帮我看看这个程序

关键词

  • sfilename
  • fp

得分解答快速导航

  • 帖主:kongkongyu
  • LoveYouJustOneDay
  • megaboy

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo