Преобразование 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 шт):
Если уже используете 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;
}