C# StreamWriter未写入所有字符

C# StreamWriter未写入所有字符,c#,streamwriter,C#,Streamwriter,当人们关闭游戏以保存他们当前选择的所有宠物时,我会运行这段代码(这是给学校的,不要担心我如何命名它为“Squirtle”,这里没有版权问题)。有关守则是: using (StreamWriter sw = File.CreateText(@"..\..\pets.txt")) { sw.AutoFlush = true; foreach (Pet p in petList) { sw.Write(p.PetID + ' '); sw.Wri

当人们关闭游戏以保存他们当前选择的所有宠物时,我会运行这段代码(这是给学校的,不要担心我如何命名它为“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 7741930。每次我运行它时都会发生这种情况,我想知道是否有人知道它为什么这样做?如果StreamWriter或其他东西以空格和逗号而臭名昭著,我也可以使用任何分隔符。

您正在执行
Int+Char
,此操作的重载将导致
Int+(Int)Char
将空格转换为Unicode代码点并执行算术运算


你想做的是
p.PetID.ToString()+”

如果你用
替换
”它能解决你的问题吗?我只是在stream writer运行后查看它,看起来是这样的,我会尝试双引号,看看它是否也能解决我所想的问题,但是我对答案没有足够的信心来发布。@ScottChamberlain我以前确实调试过一个类似的问题,所以我100%肯定是这样的:Dthanks,伙计,我会在10分钟内给它一个很好的答案,如果它允许的话