#include<fstream>
#include<locale>
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
locale china(“chs”);
wcin.imbue(china);
wcout.imbue(china);
wfstream file;
file.imbue(china);
wstring str; //文件内容存到的目标字符串 str
wstring gstr; //临时变量,用来读入文件
file.open(“Ci1.txt”,ios::in|ios::out);
do{
str = str + gstr;
file>>gstr;
}
while(!file.eof());
file.close(); //关闭文件
wcout<<str<<endl;
}
程序可以通过编译器,但无法运行,显示:
讨教这是什么问题。
还有,问一下本人这种读取中文文本TXT的方法科学吗?
有没有多快好省的方法
#include<locale>
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
locale china(“chs”);
wcin.imbue(china);
wcout.imbue(china);
wfstream file;
file.imbue(china);
wstring str; //文件内容存到的目标字符串 str
wstring gstr; //临时变量,用来读入文件
file.open(“Ci1.txt”,ios::in|ios::out);
do{
str = str + gstr;
file>>gstr;
}
while(!file.eof());
file.close(); //关闭文件
wcout<<str<<endl;
}
程序可以通过编译器,但无法运行,显示:
讨教这是什么问题。
还有,问一下本人这种读取中文文本TXT的方法科学吗?
有没有多快好省的方法
解决方案
5
locale 字符串由系统规定, Windows 下在 https://msdn.microsoft.com/en-us/library/hzz3tw78.aspx 可以查阅
完整读取一个文件通常不是一个好主意,不过你非要读的话,
完整读取一个文件通常不是一个好主意,不过你非要读的话,
std::string str(std::istream_iterator<char>(file), (std::istream_iterator<char>()));
35
除了eof还有很多其它不正常状态嘢!
http://www.cplusplus.com/reference/ios/ios/rdstate/
http://www.cplusplus.com/reference/ios/ios/rdstate/