• Advertisement
Sign in to follow this  

SDL TTF- strings ?

This topic is 3112 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I'm trying to make SDL display a string type but aparently SDL TTF only supports C Strings or static strings. here's the line that's causing me the trouble: line1 = TTF_RenderText_Solid( font, currentline1, textColor ); the error says the compiler can't convert a std:string to a const char*, which I suppose means the TTF_RenderText_Solid function only supports C Strings or static strings but no C++ strings ("currentline1"). Is there any way around this ?

Share this post


Link to post
Share on other sites
Advertisement
std::string has a .c_str() member function that gives you a const char * for the string.

Share this post


Link to post
Share on other sites
This is the solution I use:


std::string strMessage = "Hello World!";
SDL_Surface* surText;
surText = TTF_RenderText_Solid( ttfFont, &strMessage[0], colWhite );

Share this post


Link to post
Share on other sites
Quote:
Original post by Kingerthethird
This is the solution I use:

std::string strMessage = "Hello World!";
SDL_Surface* surText;
surText = TTF_RenderText_Solid( ttfFont, &strMessage[0], colWhite );


Please use strMessage.c_str() and don't access the std::string internal buffer directly unless you have to as it defeats the purpose of using a std::string vs a standard character array.

surText = TTF_RenderText_Solid( ttfFont, strMessage.c_str(), colWhite );

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement