2017-08-06 40 views
-1

所以我試圖保存一個字符串(存儲在一個字符串變量)到一個文本文件中...我已經花了差不多2個小時看這個,並且一直沒能找出爲什麼C++不能寫字符串變量轉換爲文本文檔。如何將字符串保存爲Windows窗體(C++)中的文本?

我在這裏錯過了什麼?

private: System::Void SaveButton_Click(System::Object^ sender, System::EventArgs^ e) { 

String^ _String= "WHATTHEFUCK"; 
//So this works vvv 
ofstream _SaveFile; 
_SaveFile.open("SaveCFG.txt"); 
_SaveFile << "FUUUUCK"; //<<<<<<<< 
_SaveFile.close(); 
//^^^ 

//But this does NOT work vvv 
ofstream _SaveFile; 
_SaveFile.open("SaveCFG.txt"); 
_SaveFile << _String; //<<<<<<<< 
_SaveFile.close(); 
//^^^ 

//Neither does this vvv 
ofstream _SaveFile; 
_SaveFile.open("SaveCFG.txt"); 
_SaveFile << "WTF" << _String<< endl; //<<<<<<<< 
_SaveFile.close(); 
//^^^ 

}

+0

你在文本文件中得到什麼?什麼? 4-8個垃圾字符?我在C/C++中工作了十多年,但是它可能是將指針值寫入文件而不是實際的字符串? –

+0

謝謝我試過一個字符指針,它工作。我正在使用String ^,並且必須將它轉換爲std :: string,然後將其轉換爲char *。老實說,我不明白用多種不同的方式編寫一個字符串,並且必須相互轉換它們,因爲一個字符串不知道另一個字符串是一個字符串。我想生病'只是堅持與C#。 – Zachwuzhere

+0

但是,如果您使用C++/CLI,爲什麼不使用託管文件類? – KBO

回答

0

可能是路要走這裏,但假設你正在寫的指針,而不是字符串。沒有一個C++編譯器,但你可以嘗試(如果我沒記錯的話):

//But this does NOT work vvv 
ofstream _SaveFile; 
_SaveFile.open("SaveCFG.txt"); 
_SaveFile << *_String; // or is it &_String; 
_SaveFile.close(); 
//^^^ 

它看起來像現在人們使用的std :: string雖然代替。希望你找到你的答案。

相關問題