2011-04-28 94 views
0

我正在嘗試將一些整數寫入一個文件(作爲一個字符串)。每次我嘗試運行這段代碼時,都會將整數像計劃的那樣存入文本文件中,但在整數之前,我會得到一些亂碼。我做了一些試驗,發現如果我沒有在System :: String^b中放入任何東西,它會在文件或消息框中輸出相同的亂碼輸出,但我無法弄清楚爲什麼它會這樣做,如果我將這些整數連接起來(作爲字符串)。這裏可能會出現什麼問題?爲什麼在讀取字符串時,我會得到亂碼輸出以及有效的輸出?

using namespace msclr::interop; 
using namespace System; 
using namespace System::IO; 
using namespace System::Text; 

... 

System::IO::StreamWriter^x; 
char buffer[21], buffer2[3]; 
int a; 
for(a = 0; a < 10; a++){ 
    itoa(weight[a], buffer, 10); 
    strcat(buffer, buffer2); 
} 
System::String^b = marshal_as<String^>(buffer); 
x->WriteLine(b); 

回答

0

該文件的格式是什麼?您可能正在讀取UTF-8文件,其中包含一個由文本編輯程序靜默應用的字節順序標記。

http://en.wikipedia.org/wiki/Byte_order_mark

+0

對不起,這意味着我正在從內存中讀取字符串,並將其放入文件或消息框中。 – 2011-04-28 00:35:12

0

錯字在代碼問題或缺陷:通過buffer2itoa代替buffer

另外,將buffer初始化爲"";

相關問題