C++处理中文字符遇到的问题

C++语言 码拜 8年前 (2016-09-19) 1631次浏览
#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;
}
程序可以通过编译器,但无法运行,显示:
C++处理中文字符遇到的问题
讨教这是什么问题。
还有,问一下本人这种读取中文文本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/

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C++处理中文字符遇到的问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)