c/c++ 读取文件问题
我想把一个中文的文本文件一次性读入到一个字符串string中,有什么简洁高效的办法??(附,文本文件比较大,所以要稍微考虑下读写速率的问题)另,在网上看到有用istrea...
我想把一个中文的文本文件一次性读入到一个字符串string中,有什么简洁高效的办法??(附,文本文件比较大,所以要稍微考虑下读写速率的问题)
另,在网上看到有用
istreambuf_iterator这个解决的??
哪位大神能附上完整编译通过的代码?? 展开
另,在网上看到有用
istreambuf_iterator这个解决的??
哪位大神能附上完整编译通过的代码?? 展开
3个回答
展开全部
//
#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;
}
#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;
}
展开全部
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);
文件存放都是二进制方式存放的 哪有分什么中文不中文的 只是文件显示的方式不同而已
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询