Преобразование ostringstream из VS6 в VS2010
У меня есть этот код, который хорошо работает под VS6, но дает ошибки в VS2010:
void CGreatString::operator>> (char * lpszDest)
{
strcpy (lpszDest, str());
rdbuf()->freeze(0);
}
Я нашел это для чего-то похожего на мою проблему, но это все равно не сработало...
Итак, насколько я понимаю, ostrstream устарел в VS2010, поэтому я попробовал это:
void CGreatString::operator>> (char * lpszDest)
{
ostringstream os;
string str = os().str(); //Error 1 and 2
strcpy (lpszDest, str.c_str());
os.rdbuf()->freeze(0); //Error 3
}
Но я все еще получаю ошибки:
1 - ошибка C2064: термин не оценивает функцию, принимающую 0 аргументов
2- ошибка C2228: слева от.str должен быть класс / структура / объединение
3- ошибка C2039: "заморозить": не является членом "std::basic_stringbuf<_Elem, _Traits, _Alloc>"
Спасибо!
2 ответа
Решение
Судя по комментариям на мои вопросы, я смог это исправить. Спасибо!
void CGreatString::operator>> (char * lpszDest)
{
ostringstream os;
string str = os.str();
strcpy (lpszDest, str.c_str());
}
Так что мини-уценка не работает в комментариях. Отлично, это просто решетка.
void CGreatString::operator>> (char * lpszDest)
{
// copy lpszDest into my CGreatString
// The code you write does nothing at all.
}