我试图从结构中打印3个属性。为什么不打印?他们一次打印2张,但不是全部打印在一起。
答案 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();
}