如何读取多行中文文本

yuchengtong 2009-10-26 01:03:06
我用的是UNICODE编码,用CStdioFile读取多行中文会出来乱码。我不想改编码,麻烦大家帮我给出一段代码,读取和存入的,要多行不能是乱码,谢谢啦。我用的是VS2005
...全文
130 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuchengtong 2009-10-27
  • 打赏
  • 举报
回复
哎,用CStdioFileEx搞定了,结贴
ct025028 2009-10-26
  • 打赏
  • 举报
回复
后面出来的乱码??你的字符串没有结束符??
yuchengtong 2009-10-26
  • 打赏
  • 举报
回复
汗,结果是“abc
是否
adfa
sdf
a
sdf
adsf屯屯屯葺”
ct025028 2009-10-26
  • 打赏
  • 举报
回复
你是要将文字显示出来吗?如果只是进行内部处理就没有必要转换,使用二进制读取进来就可以了,如果需要显示进行相应转换就可以了。
joimson 2009-10-26
  • 打赏
  • 举报
回复
同意上楼,用二进制来读取数据.
sharp0309 2009-10-26
  • 打赏
  • 举报
回复
多行乱码出现的情况一般是\r\n引起的!!用二进制来读写会解决这个问题的!!!
vann1982 2009-10-26
  • 打赏
  • 举报
回复
没贴上来 晕。。
int len;
char* buf;
fstream myfile(YOURFILENAME);

myfile.seekg (0, ios::end);
//获得文件的长度
len = myfile.tellg();
//跳转至头部
myfile.seekg (0, ios::beg);

buf = new char[len];
myfile.read(buf,len);
vann1982 2009-10-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yuchengtong 的回复:]
要怎么用啊?能给下具体的代码吗?我是菜鸟。。。
[/Quote]
给段用fstream的代码


int len;
char* buf;
fstream myfile(YOURFILENAME);

myfile.seekg (0, ios::end);
//获得文件的长度
len = myfile.tellg();
//跳转至头部
myfile.seekg (0, ios::beg);

buf = new char[len];
myfile.read(buf,len);
yuchengtong 2009-10-26
  • 打赏
  • 举报
回复
要怎么用啊?能给下具体的代码吗?我是菜鸟。。。
yuchengtong 2009-10-26
  • 打赏
  • 举报
回复
要怎么转换呢?
Conry 2009-10-26
  • 打赏
  • 举报
回复
自己用CFile读取,判断\r\n
yuchengtong 2009-10-26
  • 打赏
  • 举报
回复
编译环境是UNICODE的,读取的文本不是

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧