我有一个包含重音字符的文本文件(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(这是“à”,但它显示▒代替)来比较“à”,结果假设是真的,但它给了我错误。
“à”与“à”比较应为真。
但是在我的程序中,相反,它是
“▒”与“à”相比,它是假的。