能不能通过字符集或PAGE-CODE的方式获得?
请附上详细叙述(或原码),小弟急用(一定给500分)!

解决方案 »

  1.   

    如果有文件的话,你检查文件的大小不就得了?============================================================================
    DocWizard http://www.betajin.com/alphasun/index.htm
      

  2.   

    是不是不包括空格,数字,英文,控制字符?GBK范围:
    1st byte    2nd byte
    0x81~0xfe   0x40~0x7e and 0x80~0xfeBIG5范围:
    1st byte    2nd byte
    0x81~0xfe   0x40~0x7e and 0xa1~0xfe
      

  3.   

    //效率更高的方法
    len=文件大小;
    BYTE *=new BYTE[len];
    Read(b.len);
    //num为记事本文档中的汉字数
    for(int i=0,num=0;i<len;i++){
      if(b[i]>'~'){
        i++;
        num++;
      }
    }
      

  4.   

    那就一次全部读取到内存啊. 怕内存分配太大的话就一次读取1024字节.1.打开并按指定字节数(1024)读取文本文件到BUF,以下是对BUF操作
    2.依次取出BUF的字节
      比较该字节是否在0x81~0xFE之间,如果不在该区间则取出下一字节比较.
      如果是的话,跳过一个字节取出一字节,查看该字节是否在0x40~0x7e或
      0x80~0xfe中,是的话计数加一.要解决边界问题.
    3.关闭文件.得到总计数,即是汉字的树目
      

  5.   

    3jaja(3++输入法) 的方法很有趣,但是,怎么就知道那个范围的就是汉字而不是其他字符?特别谢谢fengzi_zhu(疯子) 的方法。
      

  6.   


    汉字的范围应该在  0x80-0xff(128-256)之间。
      

  7.   

    第一个汉字大于'~',汉字占两个字节。如此而已。
    for(int i=0,num=0;i<len;i++){
      if(b[i]>'~'){
        i++;  //汉字占两个字节
        num++;//汉字计数器加一
      }
    }
      

  8.   

    小弟关于汉字个数的问题已经解决。
    谢谢各位对小弟的支持,有很多方法读很有趣。
    小弟最终采用了fengzi_zhu(★失业中....) 提出的方法。
    谢谢了。