用C ++打印结构

时间:2016-06-04 04:53:03

标签: c++ printing

我试图从结构中打印3个属性。为什么不打印?他们一次打印2张,但不是全部打印在一起。

1 个答案:

答案 0 :(得分:3)

name最后有一个回车符。所以它正在打印

2HP Potion\r10

\r将光标移动到行的开头,而不移动到下一行,因此10会覆盖2H

我怀疑这是因为您从Windows上编写的文件中读取了名称,该文件使用\r\n作为文本文件中的换行符序列。您应该使用dos2unix修复文件,或者更改读取文件的代码以删除\r个字符。

您最后可以删除\r

int last_pos = name.size()-1;
if (last_pos >= 0 && name[last_pos] == '\r') {
    name.pop_back();
}