Преобразование String^ в string

Есть textBox, его содержимое должно стать названием нового текстового файла(txt/csv/json). Проблема в том, textBox может принимать значение String^, а запись в название файла возможна с типом string или char (если я правильно понял). Ошибка:

E0415 не существует подходящего конструктора для преобразования из "System::String ^" в "std::basic_ofstream<char, std::char_traits>"

String^ n= textBox1->Text+".csv";
ofstream fname=(n);

Как преобразовать из String^ в string или сделать так, чтобы это работало, может без преобразования, а как-то по-другому.


Ответы (1 шт):

Автор решения: KoVadim

Если уже используете cli (.NET), то лучше сразу и местные классы использовать. Вот ссылка на msdn где есть просто куча примеров.

Так как у Вас ostream, то наверное хочется писать в файл.

// text_write.cpp
// compile with: /clr
using namespace System;
using namespace System::IO;

int main()
{
   String^ fileName = "textfile.txt";

   StreamWriter^ sw = gcnew StreamWriter(fileName);
   sw->WriteLine("A text file is born!");
   sw->Write("You can use WriteLine");
   sw->WriteLine("...or just Write");
   sw->WriteLine("and do {0} output too.", "formatted");
   sw->WriteLine("You can also send non-text objects:");
   sw->WriteLine(DateTime::Now);
   sw->Close();
   Console::WriteLine("a new file ('{0}') has been written", fileName);

   return 0;
}
→ Ссылка