Cin.get(voiture[i]->marque, ARSIZE); – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Cin.get(voiture[i]->marque, ARSIZE); – C / C++ – Fórum – Programujte.comCin.get(voiture[i]->marque, ARSIZE); – C / C++ – Fórum – Programujte.com

 

newbie
~ Anonymní uživatel
9 příspěvků
1. 12. 2007   #1
-
0
-

Tak delam jednoduchy programek uplne.. zepta se vas kolik chcete zadat aut, pak postupne na rok vyroby a znacku vsech z nich a pak je ma vypsat.. a nefunguje mi to..g++ hlasilo nejakou podivnou hlasku prave ohledne

cin.get(voiture[i]->marque, ARSIZE);

ta zmizla, kdyz jsem

->

zmenil na

.

..ale kdyz to clovek spustil, preskakovalo vsecky otazky, jen je to vypsalo a konec... a tak jsem s tim ruzne zkousel carovat, a nakonec jsem dosel jednodusse k tomu, ze g++ prestalo psat chybku kdyz jsem to vratil do puvodni podoby..coz teda nejak nechapu.. uz se mi to driv stalo, ze se chovalo takhle divne, akoratze predtim (kdyz toto g++ udelalo) to slo, ted to jednodusse za chodu programu napise Segmentation fault.. kazdopadne vzhledem k tomu, ze v tech ukazatelich nejsem vubec zbehly, tak si myslim, ze to bude nejaka jednoducha chyba syntaxe proste..takze prosim, jestli byste se na to nemohli kouknout..snad jsem nic nezapomnel vypsat nebo tak..kdyztak cokoli..

#include<iostream>

const int ARSIZE = 20;

struct car {
char marque[ARSIZE];
int made;
};

int main()
{ using namespace std;
cout << "Kolik autaku chces vlozit do katalogu: ";
int count;
cin >> count;
car* voiture[count];
int i;
for (i=0; i< count; i++)
{ cout << "Auto c. " << i+1 << ": ";
cout << "\nJakou znacku ma " << i+1 << ". auto: ";
cin.get(voiture[i]->marque, ARSIZE);
cout << "\nKdy bylo vyrobeno " << i+1 << " auto: ";
cin >> voiture[i]->made;
}
cout << "Zde je vase sbirka: \n";
for (i=0; i< count; i++)
cout << voiture[i]->made << " " << voiture[i]->marque << endl;
return 0;
}

Nahlásit jako SPAM
IP: 84.21.126.–
newbie
~ Anonymní uživatel
9 příspěvků
1. 12. 2007   #2
-
0
-

NE, JA JSEM VUL SORRY ...fakt moc

car* voiture[count];

nahradte pls
car* voiture = new car[count];


ale pak mi to teda pise tu chybku
ukol5_6.cpp: In function 'int main()':

ukol5_6.cpp:19: error: base operand of '->' has non-pointer type 'car'
ukol5_6.cpp:21: error: base operand of '->' has non-pointer type 'car'
ukol5_6.cpp:25: error: base operand of '->' has non-pointer type 'car'
ukol5_6.cpp:25: error: base operand of '->' has non-pointer type 'car'


cim to je ? co mam teda zmenit? moc se omlouvam za svou blbost...

Nahlásit jako SPAM
IP: 84.21.126.–
Jonyzz0
Návštěvník
1. 12. 2007   #3
-
0
-

Nepoužívej při přístupu k jednotlivým položkám struktury -> ale tečku



voiture[i].marque;

-> by si použil pokud by šlo o pole ukazatelů na car .

A nezapomeň na konci na


delete [] voiture;

Nahlásit jako SPAM
IP: 62.40.69.–
newbie
~ Anonymní uživatel
9 příspěvků
1. 12. 2007   #4
-
0
-

To Jonyzz : aha, jj dekuju... tak jsem opravil '->' na '.' ale jelo to jako by tam zadny 'cin' nebyly (nic to po uzivatelovi nechtelo zadat)..ale po pridani do cyklusu za kazdej 'cin' cin.get() prazdnyho to slo.. ikdyz teda nevim proc, jsem myslel, ze znak novyho radku zanechava jen cin.get(xx, 20) ...

promin, ze jeste otravuju, ale muzu se zeptat, takze

car* voiture = new car[20]
nevytvorim pole ukazatelu na char ? jak teda ?

Nahlásit jako SPAM
IP: 84.21.126.–
Jonyzz0
Návštěvník
1. 12. 2007   #5
-
0
-

to newbie: znak nového řádku zanechává také vstup pomocí cin >> proměnná;

jinak k tomu poli ukazatelů, je rozdíl mezi

ukazatel na pole:

car* voiture = new car[20];


a polem ukazatelů:


car* voiture[20]
voiture[0] = new car;
voiture[1] = new car;
...

Nahlásit jako SPAM
IP: 62.40.69.–
newbie
~ Anonymní uživatel
9 příspěvků
1. 12. 2007   #6
-
0
-

To Jonyzz : jo takhle..moc dik

Nahlásit jako SPAM
IP: 84.21.126.–
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, 39 hostů

Podobná vlákna

Cin.get() cin.line() — založil H3ll

Cin, cin.get(),...atď — založil PeterSura

Cin.get() — založil myth

Cin.get(); — založil Dodo

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ý