program nie chce pobierac danych
Ostatnio zmodyfikowano 2015-02-12 01:03
moninf Temat założony przez niniejszego użytkownika |
program nie chce pobierac danych » 2015-02-11 18:11:52 #include <iostream>
using namespace std;
struct car { char marka[ 20 ]; int rokbud; };
int main() { cout << "Podaj ile samochodow skatalogowac" << endl; int liczba; cin >> liczba; car * auta = new car[ liczba ]; int i = 1; while( i <= liczba ) { cout << "Podaj nazwe auta" << endl; cin.get( auta->marka, 20 ); cout << "Podaj rok budowy tego samochodu" << endl; cin >> auta->rokbud; i++; } delete[] auta; return 0; } Program wyswietla wszystkie napisy ale nie chce pobierac danych.... nie wiem co jest nie tak z tym kodem. Prosze o pomoc |
|
Peruskough |
» 2015-02-12 01:03:46 Po pierwsze, zmienna "i" powinna być początkowo równa zero (tablice numeruje się od zera). Warunek pętli while to powinno być i<liczba, a nie i<=liczba, bo tak jak wspomniałem wcześniej, tablice numerujemy od zera. I najważniejsze. Gdy masz auta->marka to przypisujesz dane tylko do pierwszego elementu tablicy, a chodzi Ci o wszystkie. Dlatego zastosuj (auta+i)->marka, dzięki temu przypiszesz dane do wszystkich elementów tablicy. To samo oczywiście z auta->rokbud. I zamiast cin.get() zastosuj zwyczajne cin. Czyli ogółem z poprawkami: cout << "Podaj ile samochodow skatalogowac" << endl; int liczba; cin >> liczba; car * auta = new car[ liczba ]; int i = 0; while( i < liczba ) { cout << "Podaj nazwe auta" << endl; cin >>( auta + i )->marka; cout << "Podaj rok budowy tego samochodu" << endl; cin >>( auta + i )->rokbud; i++; } delete[] auta; return 0;
|
|
« 1 » |