Эта часть моего кода работает в бесконечном цикле и показывает число, но мне нужно очистить строку после использования, потому что, поскольку она запускается в цикле, она продолжает умножаться. (Извините за мой английский, это не мой родной язык)
текст ---> текст текста → текст текста текст
cartemap << "Carte: " << currentmap; //cartemap is a std:string currentmap a integer'
MESSAGE1 = TTF_RenderText_Solid( font, cartemap.str().c_str() , noir );
apply_surface( 70, 70, MESSAGE1, SCREEN );
SDL_FreeSurface(MESSAGE1);
Вызовите std::string::clear()
чтобы очистить string
:
mystring.clear();
Но похоже, что вам нужен std::ostringstream::str()
чтобы очистить ostringstream
(или stringstream
) в вашем примере:
cartemap.str("");
ostringstream
, а не string
. Я обновил свой ответ, чтобы учесть оба.
AFAICT из вашего фрагмента, cartemap
не является std::string
, но это std::stringstream
или аналогичный. Чтобы очистить поток строк, выполните
cartemap.str("");
Если cartemap - ваша строка, попробуйте следующее:
cartemap.resize(0);
str = ""
[morechars]cartemap
не являетсяstd::string
.std::string
не имеет функции-члена с именемstr
. Похоже, этоstd::ostringstream
.