当人们关闭游戏以保存所有他们当前选择的宠物时,我会运行这些代码(这是为了学校不要担心我如何命名它" Squirtle",没有版权问题这里)。有问题的代码是:
using (StreamWriter sw = File.CreateText(@"..\..\pets.txt"))
{
sw.AutoFlush = true;
foreach (Pet p in petList)
{
sw.Write(p.PetID + ' ');
sw.Write(p.Name + ' ');
sw.Write(p.HP + ' ');
sw.Write(p.Type + ' ');
sw.Write(p.Level + ' ' );
sw.Write(p.Rarity + ' ');
sw.WriteLine(p.Speed);
}
}
逗号是空格,我只是添加了autoflush来尝试修复问题,但基本上无论我运行多少次,前两个,后两个和最后3个数据之间都没有空格,例如:32SQUIRTLE 77AQUATIC 41930.每当我运行它时都会发生这种情况,我想知道是否有人知道它为什么要这样做?如果使用StreamWriter或其他东西,空格和逗号都是臭名昭着的话,我也可以使用任何分隔符。
答案 0 :(得分:8)
您正在执行Int + Char
,此操作的重载将导致Int + (int) Char
将空间转换为其Unicode代码点并进行算术运算
您要做的是p.PetID.ToString() + " "