我正在尝试从文本文件中读取一些数据。其中一个数据名称是Chamber temperature [°C]
。我用以下命令读取文件:getline(myfile, tab, '\t');
out。
问题是学位标志格式化为"Chamber temperature [�C]"
。
如何防止c ++对格式符号进行格式化?
P.S。 :在文本文件中,符号格式正确
代码:
//just create a txt file on your desktop which only stores "Chamber Temperature [°C]
myfile.open("C:\\Users\\user\\Desktop\\test.txt");
string tab = "";
getline(myfile, tab, '\t');
cout << tab << endl;
如果您使用与我下面描述的设置相同的设置,您应该遇到同样的问题,这不仅仅是语言差异的问题。 UTF-8只是不能将符号解释为ANSI。
有些解决方案我可以查找子字符串,然后根据需要替换格式,但我想在任何情况下都有一种万无一失且安全的方式来使用此代码。所以我正在寻找这两种语言之间的转换。
有关我的环境的其他信息:
我使用带有MinGW编译器的eclipse和重音c ++ 11。我使用UTF-8编码的默认文本文件和新的文本文件分隔符UNIX。
我用notepad ++打开文件,它给出了文件格式“ANSI”的估计。
我使用简单的ifstream
将数据读入3D矢量(第一维:文件;第二维:行数据;第三维:列)。我使用getline
将由制表符分隔的每个序列读入变量......并最终读入我的矩阵。
现在,在我将数据存储到矩阵后,我进行了一些数据搜索,这就是我的问题。因为文件格式为ANSI我不能将字符串Chamber Temperature [°C]
与存储的数据进行比较,因为它永远不会找到它。
我需要将文本文件转换为UTF-8格式,然后将其存储到我的3D矩阵中。这可能吗?我刚接触编码,你能不能给我一个示例代码或伪代码?