Witam!
Od jakiegoś czasu mam problem z napisaniem w C++ prostego programu zaopatrzonego w funkcje do tworzenia i wczytywania struktur. Napisałem nawet przykładowy kod, niestety mocno kuleje jeśli chodzi o wczytywanie (tj. wyświetlanie danych już utworzonych) struktur. Najprawdopodobniej ma to związek z moimi brakami w wiedzy w temacie wskaźników... Chciałbym Was prosić o wprowadzenie w poniższym kodzie poprawek oraz, w miarę możliwości, objaśnienie mi, dlaczego i jak stosować w tym przypadku wskaźniki (jeśli rzeczywiście w tym leży problem).
Kod (UWAGA: funkcja wczytująca jest niepoprawna!)
<code=c++>
#include<iostream>
using namespace std;
struct Sauta
{
string marka;
int rocznik;
};
void utworz(Sauta &auta, int n) //znak referencji ważny!
{
if(n == 1)
{
cout << "Podaj marke: ";
cin >> auta.marka;
cout << endl;
cout << "Podaj rocznik: ";
cin >> auta.rocznik;
cout << endl;
}
else
{
Sauta auta[n];
for(int i = 0; i < n; i++)
{
cout << "Dane dla auta nr: " << i << endl;
cout << "Podaj marke: ";
cin >> auta[i].marka;
cout << endl;
cout << "Podaj rocznik: ";
cin >> auta[i].rocznik;
cout << endl;
}
}
}
void wyswietl(Sauta &auta, int n)
{
if(n == 1)
{
cout << auta.marka << endl;
cout << auta.rocznik << endl;
cout << endl;
}
else
{
Sauta auta[n];
for(int i = 0; i < n; i++)
{
cout << "Dane dla auta nr: " << i << endl;
cout << auta[i].marka << endl;
cout << auta[i].rocznik << endl;
cout << endl;
}
}
}
int main()
{
const int n = 2;
Sauta auta[n];
utworz(auta[n], n);
wyswietl(auta[n], n);
return(0);
}