проблемы в Visual C ++ 2010 в отношении строк - PullRequest
0 голосов
/ 19 декабря 2011

Я пытаюсь создать приложение Windows Forms в Visual C ++ 2010. Я сохранил определенную строку в строковой переменной "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>          ]

Что ядолжен делать здесь?

PS Я уже включил все необходимые заголовки (или те, которые я считаю необходимыми), такие как string, fstream, istream, iomanip и т. д.

Ответы [ 2 ]

2 голосов
/ 19 декабря 2011

Я думаю, вам нужно конвертировать System::String ^stat в std::string.Ниже приведена ссылка, как конвертировать:

C ++ / CLI Преобразование из System :: String ^ в std :: string

2 голосов
/ 19 декабря 2011

std::ofstream - это стандартная библиотека C ++, и она не поддерживает System::String^.Если вы хотите записать в файл из System::String^, вы должны использовать класс System::IO::FileStream.В противном случае используйте std::string вместо System::String^.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...