当尝试打印readdata
字符串的内容时,结果不符合预期,但是如果我单独打印出'line'的内容,则会打印出正确的结果:
std::string line;
std::string readdata;
std::ifstream file(filename);
if (file.is_open())
{
for (int i=0;std::getline(file,line) && i<10;i++)
{
std::cout<<line<<std::endl; //Prints correct result for each instance.
readdata.append(line);
if (i!=9)
{
readdata.append(" ");
}
}
std::cout<<readdata<<std::endl; //Prints garbled result.
file.close();
}
正在读取的文本文件包含以下数据:
#+/084&"
#3*#%#+
8%203:
,1$&
!-*%
.#7&33&
#*#71%
&-&641'2
#))85
9&330*
'line'的打印打印出来,但是当打印readdata
时,结果为:
9&330*'2
答案 0 :(得分:8)
我认为你在每一行的末尾都有一个'\r'
。
答案 1 :(得分:1)
readdata.append(line.substr(0, line.find("\r")));