C ++如何从文本文件中读取重音字符?

时间:2016-07-13 16:52:43

标签: c++ text encoding non-ascii-characters istream

我有一个包含重音字符的文本文件(ANSI),例如:

A
àà
ééc

我无法显示和操纵的重音字符。

这是我的代码:

ifstream readfile(argv[1]); // to read a text file
string output;

while (!readfile.eof())
{
    getline(readfile, output);
    const char *p = output.c_str(); 

    while (*p != '\0')
    {
        //Some of my codes here for manipulation, comparison...
        cout << *p++;
    }
    cout << endl;
}

我做了一些研究,我也尝试了wcout,wifstream,wstring,wchar_t,但它们似乎不起作用......我也注意到“getline”无法读取重音字符。

使用没有任何重音字符的文本文件,我当前的代码完美无缺。

当有重音字符时,它会显示一个奇怪的角色,因此,我无法进行操作。

编辑:

使用const char * p,我无法指定重音字符在程序本身进行比较。

我真正要做的是从文本文件中获取重音字符,然后在程序/代码中进行一些比较,当比较结束时,它会将正确的输出写入新的文本文件中。

输入和输出文本文件显示正确的重音字符。 真正的问题是我想比较程序/代码本身的重音字符。

EDIT2:

例如,

我对const char * p的输入是“à”。 在我的程序中,我使用p(这是“à”,但它显示▒代替)来比较“à”,结果假设是真的,但它给了我错误。

“à”与“à”比较应为真。

但是在我的程序中,相反,它是

“▒”与“à”相比,它是假的。

0 个答案:

没有答案