我正在尝试在Visual C ++ 2010中创建Windows窗体应用程序。我在字符串变量“stat”中保存了一些特定的字符串,如:
System::String ^stat = "sample string";
问题是,我无法使用ofstream将其写入文本文件。当我尝试这个时:
if ( opstat == true ) // opstat is a bool variable
{
ofstream outf("mytxt.txt",ios::app);
outf << stat;
outf.close();
}
编译器返回错误:
error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'System::String ^' (or there is no acceptable conversion)
这是一个永远存在的巨大错误:
1> D:\Development\Visual Studio 2010\VC\include\ostream(447): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(long double)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
我应该在这做什么?
P.S。我已经包含了所有必要的标题(或者我认为必要的标题),如string,fstream,istream,iomanip等。
答案 0 :(得分:2)
std::ofstream
是一个C ++标准库函数,它不是为支持System::String^
而构建的。如果要从System::String^
写入文件,则应使用System::IO::FileStream
类。否则,请使用std::string
代替System::String^
。
答案 1 :(得分:2)
我认为您必须将System::String ^stat
转换为std::string
。请参阅以下链接如何转换: