Przypisanie wartości struktury dynamicznej do tablicy
Ostatnio zmodyfikowano 2015-04-24 21:43
Bastian Temat założony przez niniejszego użytkownika |
Przypisanie wartości struktury dynamicznej do tablicy » 2015-04-24 21:19:35 Cześć. Uczę się c++. Do tej pory programowałem radośnie w PHP i Javascriptcie, z sukcesami. Niestety zachciało mi się nauczyć statycznie typowanego języka i padło na C++. No i wychodzą wszystkie złe nawyki języków dynamicznie typowanych. Do rzeczy: robie ćwiczenia z Praty no i jest sobie ćwiczonko, gdzie program ma przyjmować z klawiatury marke aut i rok produkcji a potem wyświetlać. Program ma korzystać ze struktury dynamicznej. No i mam problem z przypisaniem roku (int) do tablicy, żeby na końcu wyświetlić wszystko co program przyjął. Zamiast podanych lat, dostaje śmieci. Program wygląda tak: #include <iostream> #include <cstring>
void kataloguj( int );
struct car { char marka[ 20 ]; int rok; };
void kataloguj( int ile ) { char wprowadzone_marka[ ile ][ 20 ]; int wprowadzone_rok[ ile ]; using namespace std; for( int x = 0; x < ile; x++ ) { car * samochod = new car; cout << "Samochod:#" << x << endl << "Prosze podać marke: "; cin.getline( samochod->marka, 20 ); strncpy( wprowadzone_marka[ x ], samochod->marka, 20 ); wprowadzone_marka[ x ][ 20 ] = '\0'; cout << "Prosze podać rocznik: "; cin >> samochod->rok; cin.get(); wprowadzone_rok[ ile ] = samochod->rok; delete samochod; }; for( int i = 0; i < ile; i++ ) { cout << wprowadzone_marka[ i ] << " "; cout << wprowadzone_rok[ i ] << " "; }; };
int main() { using namespace std; int liczba_aut = 0; cout << "Podaj liczbe aut: "; cin >> liczba_aut; cin.get(); kataloguj( liczba_aut ); };
A oto output programu:
╰─>$ ./a.out Podaj liczbe aut: 2 Samochod:#0 Prosze podać marke: bmw Prosze podać rocznik: 2004 Samochod:#1 Prosze podać marke: audi Prosze podać rocznik: 1998 bmw -1217483232 audi -1217176417 ⏎
Czy problem leży w poniższej operacji przypisania? wprowadzone_rok[ ile ] = samochod->rok;
jest typu int więc wg. mnie powinnien się ten rok zapisać do tablicy poprawnie..? |
|
czosnek17 |
» 2015-04-24 21:38:05 Po klamrach funkcji i pętli masz średniki, a w tym przypisaniu nie wykorzystałeś iteratora przy dostępie do elementu tablicy. Powinno być wprowadzone_rok[ x ] = samochod->rok; |
|
Bastian Temat założony przez niniejszego użytkownika |
» 2015-04-24 21:43:01 Aaaahhh...czeski błąd :/ Dzięki. |
|
« 1 » |