Dynamické pole struktur - čtení – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Dynamické pole struktur - čtení – C / C++ – Fórum – Programujte.comDynamické pole struktur - čtení – C / C++ – Fórum – Programujte.com

 

Appleworm
~ Anonymní uživatel
3 příspěvky
23. 5. 2011   #1
-
0
-

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

Nahlásit jako SPAM
IP: 83.208.177.–
Appleworm
~ Anonymní uživatel
3 příspěvky
23. 5. 2011   #2
-
0
-

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

Nahlásit jako SPAM
IP: 83.208.177.–
crAzY^
~ Moderátor
+10
Grafoman
23. 5. 2011   #3
-
0
-

mimochodem, myslíš, že tohle:

const int k = 10000;




struct car

{

char carname[k];

int year;

};


je dobré řešení? Každý název auta bude v paměti zabírat 10kB

Nahlásit jako SPAM
IP: 89.190.90.–
All you need is vision and time.
Appleworm
~ Anonymní uživatel
3 příspěvky
23. 5. 2011   #4
-
0
-

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

Nahlásit jako SPAM
IP: 83.208.177.–
Robo
~ Anonymní uživatel
82 příspěvků
26. 7. 2011   #5
-
0
-

No podla mna to nie je dobre riesenie. Vysledok ti sice moze vyjst, ale zabudol si tam dat delete. a ked to tam das, tak hned sa to cele zmeni

Nahlásit jako SPAM
IP: 188.112.124.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 5 hostů

Podobná vlákna

Pole struktur — založil Kuba-$

Velikost pole struktur — založil Redby

AVR, C a pole struktur — založil DAEW

C Pole Struktur String — založil NotBeginner

Moderátoři diskuze

 

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