怎么方便将文本中的内容读入一个字符串中
如何方便将文本中的内容读入一个字符串中
请问大家,用C++怎么方便实现把一个文本文件中的内容(有很多行,比如说一个html的内容)读入一个string中?能贴出代码吗?谢谢。
------解决方案--------------------
------解决方案--------------------
这样也可以:
------解决方案--------------------
windows提供了几个转换函数,可以将你的编码转化成你要的:
MultiByteToWideChar
WideCharToMultiByte
详细使用方法看MSDN中关于这两个函数的介绍
------解决方案--------------------
使用mfc里面的函数可以解决编码问题
------解决方案--------------------
想使用以上的东西,需要mfc支持:
#include <afx.h>
然后project选项中,选择使用MFC即可。
三个连接错误解决方法:
然后project选项中C/C++那一页中有一个 “Code Generation"的设置,设置成多线程支持就OK了
------解决方案--------------------
对电脑而言没有乱码,只有二进制字节;对人脑才有乱码。啊 GBK:0xB0 0xA1,Unicode-16 LE:0x4A 0x55,Unicode-16 BE:0x55 0x4A,UTF-8:0xE5 0x95 0x8A
------解决方案--------------------
把结构改成char数组即可
请问大家,用C++怎么方便实现把一个文本文件中的内容(有很多行,比如说一个html的内容)读入一个string中?能贴出代码吗?谢谢。
------解决方案--------------------
ifstream file("data.txt");
string text=string(istreambuf_iterator<char>(file),istreambuf_iterator<char>());
------解决方案--------------------
这样也可以:
ifstream file("F:\\data.txt");
string text;
getline(file, text, char_traits<char>::to_char_type(char_traits<char>::eof()));
------解决方案--------------------
windows提供了几个转换函数,可以将你的编码转化成你要的:
MultiByteToWideChar
WideCharToMultiByte
详细使用方法看MSDN中关于这两个函数的介绍
------解决方案--------------------
使用mfc里面的函数可以解决编码问题
CStdioFile stFile ;
if ( !stFile.Open( _strPath, CFile::modeRead ) )
{
CString temp;
temp = _strPath + "读取失败!";
AfxMessageBox(temp);
return false ;
}
CString strString ;
CString strString2 ;
while( stFile.GetLength() != stFile.GetPosition() )
{
stFile.ReadString( strString ) ;
strString2 += strString;
}
//strString2就是你想要的,绝对中文
------解决方案--------------------
想使用以上的东西,需要mfc支持:
#include <afx.h>
然后project选项中,选择使用MFC即可。
三个连接错误解决方法:
然后project选项中C/C++那一页中有一个 “Code Generation"的设置,设置成多线程支持就OK了
------解决方案--------------------
对电脑而言没有乱码,只有二进制字节;对人脑才有乱码。啊 GBK:0xB0 0xA1,Unicode-16 LE:0x4A 0x55,Unicode-16 BE:0x55 0x4A,UTF-8:0xE5 0x95 0x8A
------解决方案--------------------
#include <iostream>
#include <fstream>
using namespace std;
struct my{
int id;
float value;
}data;
int main(int argc, char* argv[])
{
my d1,d2;
d1.id = 1;
d1.value = 0.10f;
d2.id = 2;
d2.value = 0.20f;
//写二进制文件
ofstream fout("C:\\1.dat",ios::binary);
fout.write((const char *)&d1,sizeof(d1));
fout.write((const char *)&d2,sizeof(d2));
fout.close();
cout<<"Write Succ!\n";
//读二进制文件
ifstream fin("C:\\1.dat",ios::binary);
my d3;
while(!fin.eof())
{
fin.read((char *)&d3,sizeof(d3));
if (fin.eof())
{
break;
}
cout<<d3.id<<"\t"<<d3.value<<"\n";
}
fin.close();
cout<<"Read Succ!\n";
return 0;
}
//VC6.0测试通过
把结构改成char数组即可