Tablice struktur
Ostatnio zmodyfikowano 2016-05-05 20:21
DeWuKa Temat założony przez niniejszego użytkownika |
Tablice struktur » 2016-05-04 19:40:26 Witam, próbuję zrobić zadanie, w którym podaję liczbę struktur która ma być utworzona, następnie zbieram 2 dane tworząc "katalogi", a na koniec wyświetlam wszystkie zebrane informacje. Nie mam już pomysłu jak to zrobić. #include <iostream> #include <string>
using namespace std;
int main() { struct auta { string nazwa; int rok; }; cout << "Ile samochodow chcesz skatalogowac? " << endl; int samochody; cin >> samochody; auta * autka = new auta; for( int i = 0; i <= samochody; i++ ) { cout << "Podaj nazwe samochodu: " << endl; cin >> autka->nazwa[ i ]; cout << "Podaj rok produkcji samochodu: " << endl; cin >> autka->rok[ i ]; }; for( int j = 0; j <= samochody; j++ ) { int k = 0; cout << "Samochód " << k++ << ":" << endl; cout << "Nazwa: " << autka[ j ].nazwa << endl; cout << "Rocznik " << autka[ j ].rok << endl; }; delete autka; getchar(); return 0; Edit: Program nie kompiluje się, ponoć błąd jest w tym wierszu "cin >> autka->rok ;" |
|
Phestek |
» 2016-05-04 19:46:59 Napisz może co ci nie działa, z czym masz problem. Czarodziejska kula jest na urlopie. |
|
marcolo2307 |
» 2016-05-04 20:13:15 auta * autka = new auta[ samochody ]; I delete[] autka A strukturę deklaruj poza funkcją. |
|
DeWuKa Temat założony przez niniejszego użytkownika |
» 2016-05-04 20:21:33 Dziękuję, poprawiłem wskazane przez ciebie błędy, jednak dalej nie chce się skompilować. Dostałem komunikat "expression must have pointer-to-object type" dotyczący wiersza "in >> autka->rok[ i ];" jednak nie rozumiem, co jest nie tak. |
|
michal11 |
» 2016-05-04 20:39:03 autka->rok nie jest tablicą więc nie ma operatora[]. |
|
DeWuKa Temat założony przez niniejszego użytkownika |
» 2016-05-04 20:44:23 Po poprawkach wygląda to tak: #include <iostream> #include <string>
using namespace std;
struct auta { string nazwa; int rok; };
int main() { cout << "Ile samochodow chcesz skatalogowac? " << endl; int samochody; cin >> samochody; auta * autka = new auta[ samochody ]; for( int i = 0; i <= samochody; i++ ) { cout << "Podaj nazwe samochodu: " << endl; cin >> autka->nazwa[ i ]; cout << "Podaj rok produkcji samochodu: " << endl; cin >> autka->rok[ i ]; }; for( int j = 0; j <= samochody; j++ ) { int k = 0; cout << "Samochód " << k++ << ":" << endl; cout << "Nazwa: " << autka[ j ].nazwa << endl; cout << "Rocznik " << autka[ j ].rok << endl; }; delete[] autka; getchar(); return 0; } Niestety dalej nie działa |
|
marcolo2307 |
» 2016-05-04 20:45:05 autka to wskaźnik na tablicę, więc: autka[ i ]->rok; Tak samo jak to wyświetlasz. |
|
DeWuKa Temat założony przez niniejszego użytkownika |
» 2016-05-04 20:59:22 marcolo2307 bardzo dziękuję, po zmianie na: cin >> autka[ i ].rok; Wszystko działa. |
|
« 1 » 2 |