Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Problem z pętlą for, i wypisywaniem tekstu funkcją textprintf_ex()

Ostatnio zmodyfikowano 2013-05-06 20:45
Autor Wiadomość
kubek3898
Temat założony przez niniejszego użytkownika
Problem z pętlą for, i wypisywaniem tekstu funkcją textprintf_ex()
» 2013-05-06 20:21:47
Dlaczego taki kod:

C/C++
int liczba = 20;

for( int i = 0; i < 2; i++ )
{
    textprintf_ex( bufor, font, 20, liczba, makecol( 0, 0, 255 ), - 1, "%i. %s", i += 1, bonusesItems[ i ].c_str() );
    liczba += 20;
}

szwankuje, i tekst na początku się pojawia, a później znika (w mega tempie współrzędne się zmieniają)?

Lecz taki kod:

C/C++
textprintf_ex( bufor, font, 20, 20, makecol( 0, 0, 255 ), - 1, "%i. %s", 1, bonusesItems[ 0 ].c_str() );
textprintf_ex( bufor, font, 20, 40, makecol( 0, 0, 255 ), - 1, "%i. %s", 2, bonusesItems[ 1 ].c_str() );
textprintf_ex( bufor, font, 20, 60, makecol( 0, 0, 255 ), - 1, "%i. %s", 3, bonusesItems[ 2 ].c_str() );

działa? Przecież pętla powinna się wykonać tak samo jak powyższy tekst.
P-82234
Monika90
» 2013-05-06 20:44:34
C/C++
textprintf_ex( bufor, font, 20, liczba, makecol( 0, 0, 255 ), - 1, "%i. %s", i += 1, bonusesItems[ i ].c_str() );
Tutaj masz niezdefiniowane zachowanie. Ponieważ, w tym samym wyrażeniu modyfikujesz zmienną
i
 (
i += 1
) oraz używasz jej wartości jako indeksu tablicy (
bonusesItems[ i ] )
.
P-82239
kubek3898
Temat założony przez niniejszego użytkownika
» 2013-05-06 20:45:58
Faktycznie. Twój sposób działa, jednak udało mi się to rozwiązać w inny sposób:

C/C++
for( int i = 0; i < sizeof( bonusesItems ) / sizeof( string ); i++ )
{
    textprintf_ex( bufor, font, 20, liczba, makecol( 0, 0, 255 ), - 1, "%i. %s", i + 1, bonusesItems[ i ].c_str() );
    liczba += 20;
}

Tak więc zamykam, problem rozwiązany.

Dziękuje za odpowiedź i pomoc :)

P-82240
« 1 »
  Strona 1 z 1