Anonymní profil Appleworm – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Appleworm – Programujte.comAnonymní profil Appleworm – Programujte.com

 

Příspěvky odeslané z IP adresy 83.208.177.–

Appleworm
C / C++ › Dynamické pole struktur - čt…
23. 5. 2011   #142428

To crAzY^ : Hmm...je fakt, že těžko někdo bude zadávat tak dlouhý název...:-D...dám tam 40, pro šťouraly to musí stačit...a je to jenom úloha na procvičení cyklů. Ale šetřit s pamětí bych se měl učit už teď...díky za upozornění. Tady to nevadí, ale být tam těch struktur desetitisíce, tak by to nebylo dobré řešení...

Appleworm
C / C++ › Dynamické pole struktur - čt…
23. 5. 2011   #142412

To Appleworm : Jaj, už vím...já tam hodil na 39. řádek pointer :-D...sorry za zakládání zbytečného vlákna, ale není nad to si po sobě kód přečíst :-D

Appleworm
C / C++ › Dynamické pole struktur - čt…
23. 5. 2011   #142409

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...

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý