如何从文本文件中读取...字符和法语口音

时间:2014-01-21 14:16:41

标签: c++ filestream

我收到一个文本文件,每行包含几个字符。我必须逐行阅读,并在每个角色上应用词法分析器。然后,我将我的分析写在另一个文件中。

使用以下代码,我可以轻松阅读法语口音,但我意识到角色' ... '(这是一个不是3个点的字符)进入'& '。

注意:我的词法分析器必须使用字符串,这就是我将wstring转换回字符串的原因。

wfstream SourceFile;
ofstream ResultFile (ResultFileName);

locale utf8_locale(std::locale(), new codecvt_utf8<wchar_t>);
SourceFile.imbue(utf8_locale);
SourceFile.open(SourceFileName);

while(getline(SourceFile, wLineBuffer)) 
{
    string LineBuffer( wLineBuffer.begin(), wLineBuffer.end() );

...

编辑:Raymond Chen认为由于我从wstring转换为字符串,该字符丢失了。 所以新问题现在是:如何在不转换字符的情况下将wstring转换为字符串?

编辑:文件样本

"stringééé"
"ccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
Identificateur1
Identificateur2
// Commentaire22
/**/
/*
Autre commentaire
…
*/

1 个答案:

答案 0 :(得分:4)

您需要一个合适的Unicode支持库。忘记使用破坏的标准函数。它们不是为支持Unicode而设计的,不支持Unicode,也不能扩展以支持它。考虑使用ICU或Boost.Locale或类似的东西。