2
main.cpp:561:80: error: request for member ‘c_str’ in ‘str’, which is of non-class type ‘std::string [10] {aka std::basic_string<char> [10]}’
   displayFont.showHighscore[i] = TTF_RenderText_Solid(displayFont.menuFont,str.c_str(), displayFont.colorText);

こんにちは、みんな!

この関数によると、これはメンバー クラスから取得されたデータのランキングを示します。また、これは別のクラス (displayFont) の ttf コンテンツを使用していました。これをコンパイルすると、エラーが発生しました。コードを残します:

void showHighscore() {

    displayFont.menuFont = TTF_OpenFont("fonts/Lanehum.ttf",25);
    displayFont.colorText = { 255, 255, 255 }; // Add content

    stringstream texting[10]; // Variables
    string str[10];
    SDL_Rect posHighscore[10];

    for (int i = 0; i < 10; i++) {
        texting[i] << i << "#    - " << dat.topScore[i];
        str[i] = texting[i].str();
        displayFont.showHighscore[i] = TTF_RenderText_Solid(displayFont.menuFont,str.c_str(), displayFont.colorText); // OUTPUTTING ERROR :/
        posHighscore[i].x = 50; 
        posHighscore[i].y = 50 * (i+1);
    }

    while (true) {
        for (int i = 0; i < 10 ; i++) {
            SDL_BlitSurface(displayFont.showHighscore[i],NULL,screen,&posHighscore[i]);     
        } // Show the rendered text

        SDL_Flip(screen);
        SDL_Delay(5000);
        break;
    }
}
4

3 に答える 3

0

配列はまったく必要ありません。

stringstream texting;
texting << i << "#    - " << dat.topScore[i];
displayFont.showHighscore[i] = TTF_RenderText_Solid(displayFont.menuFont,
                                                    texting.str().c_str(),
                                                    displayFont.colorText);
于 2013-07-18T10:33:29.070 に答える