我在Linux下编写一个程序,从一个文件中每次读取一个字符,随后将它加入到一个string对象中:
char ch;
string my_str;
fstream my_code.open("xxx", ios::in);
while(判断条件)
{
my_code >> ch;
......(中间过程)
my_str.append(&ch);
cout << my_str;
my_str.clear();
}
程序粗略流程如上。现在发现第一次输出my_str时没有问题,以后再输出就会出现乱码。调试时发现每次通过append()函数追加一个字符后,my_str的长度增加2(2个字符长度为4,3个长度为6...)。
请教各位这是什么原因?是否与Linux下字符集有关?如何解决?