首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

C语言经典算法之编程汉字问题

C语言经典算法之编程汉字问题

/* 本程序为Windows下的控制台程序,需MFC的支持(否则不能通过编译)
* 执行时带一个参数,指定要打开的文件;以每行10个字符(每个中文字符算一个字符),
* 最后一行可能不足10个。另外如'\n','\t'等字符可能改变打印格式。
*/
#include <iostream.h>
#include <afx.h>
int main(int argc, char* argv[])
{
if(argc != 2)
{
  cout << 2 << endl;
  return 1;
}
CFile file;
intsucess = file.Open(argv[1], CFile::modeRead);
if(!sucess)
{
  cout << 2 << endl;
  return 2;
}
longlength = file.GetLength();
boolflag = false;         // 指针是否指在汉字的高位字节
intcount = 0;
unsigned char buf[21], *p = buf;
for(int i=0; i<length; i++)
{
   if(count == 10)
   {
    *p = '\0';
    cout << buf << endl;  // 注意:控制符可能打乱显示格式
    count = 0;
    p = buf;
   }
  file.Read(p, 1);
  count++;
   if(*p++ > 128 && !flag)
   {
    count--;
    flag = true;
   }
  else
    flag = false;
}
*p ='\0';
cout<< buf << endl;


return 0;
}
返回列表