2016-11-04 78 views
-2

我有這段代碼在人們關閉遊戲以保存當前選擇的寵物時運行(這是爲了學校,不用擔心我怎麼把它命名爲「Squirtle」,這裏沒有版權問題) 。有問題的代碼是:StreamWriter不寫所有字符

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);        
    } 
} 

逗號是空格,我只是添加了自動沖洗,試圖解決這個問題,但基本上不管我多少次運行它,前兩者,未來兩年,而去年3條數據之間沒有空格,例如:32SQUIRTLE 77AQUATIC 41930.每當我運行它時,都會發生這種情況,並且想知道是否有人知道它爲什麼會這樣做?如果空間和逗號與StreamWriter或其他東西臭名昭着,我也可以使用任何分隔符。

+4

如果更換' '''用''「'它能解決你的問題嗎? –

+0

我只是在流式編輯器運行後看它,它看起來像,我會嘗試雙引號,看看它是否修復它 –

回答

8

你正在做Int + Char,此操作的超載會導致Int + (int) Char其爲將空間分割成它的Unicode代碼點,做算術運算

你想要做什麼是p.PetID.ToString() + " "

+0

這就是我也在想,但沒有足夠的信心在答覆足以發佈。 –

+0

@ScottChamberlain我真的調試過這樣一個問題之前,所以我100%肯定是這樣的情況:D – Steve

+1

感謝的人我會給它很好的答案在10分鐘內,當它讓我 –

相關問題