2017-08-06 44 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虽然代替。希望你找到你的答案。

相关问题