C++(Dziwne znaki[tablica])


(Aninik9) #1

Otóż używam najnowszego Code::Blocks.

Jako, że zaczołem się dopiero uczyć, i teraz się ucze o tablicach to mam do was pytanie.

Dlaczego wywala mi jakieś dziwne znaczki?:smiley:

Oto kod prostego programiku

#include 


using namespace std;



int main()

{

    char tekst[5];

    tekst[0] = 'A';

    tekst[1] = 'b';

    tekst[2] = 'c';

    tekst[3] = 'd';

    tekst[4] = 'e';


    cout << tekst;


    return 0;

}

I powiedzcie co w tym jest złego, bo po kompilacji wywala:

cmdv.th.png


(Ebleble) #2

Spróbuj tak:

include

using namespace std;

int main()

{

char tekst[6];

tekst[0] = 'A';

tekst[1] = 'b';

tekst[2] = 'c';

tekst[3] = 'd';

tekst[4] = 'e';

tekst[5] = 0;

cout << tekst;

return 0;

}

Wywala Ci dziwne znaczki, ponieważ nie zakończyłeś poprawnie stringu i obiekt cout nie wie gdzie jest jego koniec. W C/C++ tablice znakowe, aby były poprawnie wypisywane, muszą być zakończony znakiem o wartości zero. Kiedy cout natrafi na zero, kończy wypisywanie.


(Aninik9) #3

Ok działa. Dzięki, nie wiedziałem:)!