Zdravím, mám takový problém - učím se z knihy "Mistrovství v C++" a teď jsem narazil na jedno pro mě záludné cvičení - mám napsat program, který by požádal uživatele o počtu automobilů a poté o zadání jména každého automobilu a roku výroby ...
Doposud jsem všechny cvičení naprogramoval bez problémů, ale tady se vyskytnul nějaký bug, kterému nemohu přijít na kloub. Přiznávám se, že v C++ dělám 14 dní a předtím jsem viděl jen základy Pascalu, tak prosím omluvte můj kostrbatý kód.
Napsal jsem následující kód :
#include <iostream>
using namespace std;
const int k = 10000;
struct car
{
char carname[k];
int year;
};
int main()
{
int n;
cout << "Zadejte pocet aut, ktera chcete zapsat do databaze : ";
cin >> n;
cout << "Pro zacatek zadavani stisknete ENTER !";
cin.get();
cin.get();
car * auta = new car [n];
int x = 0;
do
{
cout << "------------------------------------------------------------------" << endl;
cout << "Auto c. " << (x + 1) << " : " << endl << endl;
cout << "Prosim zadejte jmeno automobilu : ";
cin.get(auta[x].carname, k);
cout << "Zadali jste : " << auta[x].carname;
cout << endl << "Prosim zadejte rok vyroby automobilu : ";
cin >> auta[x].year;
++x;
cin.get();
}
while (x != n);
cout << "Vase sbirka automobilu : ";
x = 0;
while (x != n)
{
cout << *auta[x].carname << " -- " << auta[x].year << endl;
x++;
}
cin.get();
return 0;
}
Všechno funguje bez problémů, ale je tu jeden háček - proč se při vypisování druhého cyklu (seznam aut) zobrazí místo jména auta pouze první znak jména, ale při vypisování jména auta hned po jeho zadání se vypíše celý název ? Bádám nad tím už dost dlouho, hledal jsem na googlu, v knize, všude možně...ale bez výsledku. Nemáte nějaký návrh, jak to opravit? (budu se o to ještě chvíli pokoušet - mě hrozně vadí, když na to nepřijdu sám, ale někdo jiný :-D...
Díky za radu...