13,825
社区成员
发帖
与我相关
我的任务
分享
while(getline(ifstm , s)) //一行行地读
{
wstringstream sstm(s);
wstring sWord;
while(sstm >> sWord)
{
//这里sWord是分解出来的一个个词
}
}
wifstream ifstm("c:\\t.txt"); // c:\t.txt就你你上面的部分
wstring s;
while(ifstm >> s)
{
// s里就是你的数据了,第一次是abc,再循环是def,...
}
#include <string>
#include <sstream>
#include <windows.h>
using namespace std;
int main(int argc, char* argv[])
{
HANDLE fh= ::CreateFile("c:\\t.txt",GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_RANDOM_ACCESS,NULL);
if(fh != INVALID_HANDLE_VALUE)
{
HANDLE hMap = ::CreateFileMapping(fh, NULL, PAGE_READONLY,0,0,NULL); // Use filemapping to load entire file
if(hMap != NULL)
{
LPVOID pData = ::MapViewOfFile(hMap,FILE_MAP_READ,0,0,0);
if(pData != NULL)
{
if((*(WORD*)pData) == 0xfeff) // Is Unicode
{
wchar_t *pwszData = (wchar_t*)pData;
pwszData++;
wstringstream sstm(pwszData);
wstring sWord;
while(sstm >> sWord)
{
//这里sWord是分解出来的一个个词
}
}
else
{
// 不是Unicode文本
}
::UnmapViewOfFile(pData);
}
::CloseHandle(hMap);
}
::CloseHandle(fh);
}
}
//---------------------------------------------------------------------------