c/c++ 读取文件问题

我想把一个中文的文本文件一次性读入到一个字符串string中,有什么简洁高效的办法??(附,文本文件比较大,所以要稍微考虑下读写速率的问题)另,在网上看到有用istrea... 我想把一个中文的文本文件一次性读入到一个字符串string中,有什么简洁高效的办法??(附,文本文件比较大,所以要稍微考虑下读写速率的问题)
另,在网上看到有用
istreambuf_iterator这个解决的??
哪位大神能附上完整编译通过的代码??
展开
 我来答
ecitluo
2013-09-22 · TA获得超过763个赞
知道小有建树答主
回答量:275
采纳率:50%
帮助的人:116万
展开全部
//
#include <fstream>
#include <iostream>
#include <iterator>
#include <sstream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
wifstream f("in.txt");//in.txt 保存为ANSI格式

istreambuf_iterator<wchar_t> input(f),endpos;
wostringstream os;
while(input != endpos)
{
os<<*input++;
}
wstring result = os.str();
wcout<<result<<endl;
getchar();
return 0;
}
a773529106
2013-09-22 · TA获得超过298个赞
知道小有建树答主
回答量:331
采纳率:0%
帮助的人:300万
展开全部
fstream::read, fstream::write 高效
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-22
展开全部

CreateFile、ReadFile、CloseHandle系列函数

HANDLE hFile=CreateFile("C:\\123.txt",GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL);
if(hFile==INVALID_HANDLE_VALUE)
{
    //打开文件失败
    return;
}
ULARGE_INTEGER ulisize={0}; //一定要初始化为0
ulisize.LowPart=GetFileSize(hFile,&ulisize.HighPart);
if(ulisize.LowPart==INVALID_FILE_SIZE && (dwerror=GetLastError())!=NO_ERROR)
{
    return;//取文件大小:(适用于>=win95)
}
char TempBuffer[1024]={0};
DWORD dwTempRead=0;
//这里我是把文件的数据放到了TempBuffer缓冲区 当然你也可以改成自己的缓冲区
if(ReadFile(hFile,&TempBuffer,(DWORD)ulisize.QuadPart,&dwTempRead,NULL)==0)
{
    CloseHandle(hFile);
    return;//读文件失败
}
CloseHandle(hFile);

文件存放都是二进制方式存放的 哪有分什么中文不中文的 只是文件显示的方式不同而已
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式