Poradí mi někdo? – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Poradí mi někdo? – C / C++ – Fórum – Programujte.comPoradí mi někdo? – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Ludas0
Duch
5. 12. 2007   #1
-
0
-

Když to chci rozchodit píše mi to: no match for 'operator[]' in 'zamest' fakt už nevím co s tím.Budu moc vděčný za radu.

# include <iostream> //pokud to nekdo rozjedete nedivte se je to jeste neohrabane


using namespace std;

struct firma
{
char jmeno[35];
int vek;
char prace[100];
}zamest;

int main()
{

char odp;
int x,b=0; //pocet zamestnancu
cout<<"\n\n Vytejte u databaze zamestnancu.\n"<<" Prejete si vytvorit seznam?(a/n)";
cin>>odp;

if(odp=='n') //odpoved ne
{
cout<<"tak to je vam tento program k nicemu";
cin.get();
cin.get();
}

else //odpoved ano
{
cout<<"\n Zadejte pocet zamestnancu: ";
cin>>x;
cin.get();
if(x>32000) // vic jak 32000 zamest.
{
cout<<"tolik zamstnancu urcite nemate:-D zadejte max 32000\n";
cout<<"\n Zadejte pocet zamestnancu: ";
cin>>x;
cin.get();

}
else // zacatek vyplnovani
{
firma zamest[x];
do
{
cout<<"\n Zadejte prosim jmeno "<< b+1<<". zamestnance ___________________________________\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b";
cin.getline(zamest.jmeno, 35);
cout<<" Jeho vek:___\b\b\b ";
cin>>zamest.vek;
cin.get();
cout<<" Jeho praci: ____________________________________________________________\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b ";
cin.getline(zamest.prace,100);
b++;
}while(b!=x);
}
}
for(b=0;b<x;b++) //vypis
{
cout<<"_________________________________________________________________________";
cout<<" Zamestnanec c."<<b+1;
cout<<" "<<zamest.jmeno<<"\n VEK: "<<zamest.vek<<"\n PRACE: "<<zamest.prace;
}
cin.get();
cin.get();
return 0;
}

Nahlásit jako SPAM
IP: 80.78.146.–
Reklama
Reklama
morpheus0
Newbie
5. 12. 2007   #2
-
0
-

Pole struktur - Je možné vytvořit i pole, jehož prvky jsou struktury:



rostliny vnitrni[100]; // pole o 100 strukturách rostliny
vnitrni[0].cena; // pouzije promennou cena ze struktury vnitrni[0]

Nechci ti víc radit, aby sis na zbytek přišel sám a hlavně to pořád zkoušel. Jinak tento kód je zkopírovanej ze článku od Cura.

Nahlásit jako SPAM
IP: 193.179.179.–
Ludas0
Duch
5. 12. 2007   #3
-
0
-

To morpheus : měl sem to tam,ale tady mi to nějak ten text ignorovalo.

Ale aj tak mi to píše: no match for 'operator[]' in 'zamest [ b ]' \\když tam dám mezery tak se to b zobrazí

for(b=0;b<x;b++) //vypis

{
cout<<"_________________________________________________________________________";
cout<<" Zamestnanec c."<<b+1;
cout<<" "<<zamest[ b ].jmeno<<"\n VEK: "<<zamest[ b ].vek<<"\n PRACE: "<<zamest[ b ].prace;
}

Nahlásit jako SPAM
IP: 80.78.146.–
mephi0
Expert
7. 12. 2007   #4
-
0
-

struct firma 

{
char jmeno[35];
int vek;
char prace[100];
}zamest;

to zamest na konci robi akoze co ?

Nahlásit jako SPAM
IP: 85.248.56.–
Program nemusi fungovat rychle, staci ze funguje dostatecne rychle.
morpheus0
Newbie
8. 12. 2007   #5
-
0
-

Tím si vytvoříš novou strukturu s názvem zamest. Ale nechápu, proč nejde vypsat proměná z pole struktur.



cout <<" "<<zamest.jmeno<<"\n VEK: "<<zamest.vek<<"\n PRACE: "<<zamest.prace;

Nahlásit jako SPAM
IP: 193.179.179.–
morpheus0
Newbie
8. 12. 2007   #6
-
0
-

A tak nechápu, proč se tady na fóru v kódu filtruje nebo spíš hranatý závorky, ktery sem napsal hned za zamest.

Nahlásit jako SPAM
IP: 193.179.179.–
Ludas0
Duch
8. 12. 2007   #7
-
0
-

To morpheus : No a z jedné záhady máme hned 2 :smile5:

Nahlásit jako SPAM
IP: 80.78.146.–
morpheus0
Newbie
8. 12. 2007   #8
-
0
-

To Ludas : Tak to zmizení b v hranatých závorkách už chápu. V normálním textu se to používá jako zvýraznění a v kódu se to asi filtruje. Takže zbývá už jen jedna záhada, teda aspoň pro mě.

Nahlásit jako SPAM
IP: 193.179.179.–
morpheus0
Newbie
10. 12. 2007   #9
-
0
-

Tak už vím :D Měl jsi tam dvě chyby: První byla, že celý výpis zaměstnanců byl mimo druhou podmínku else, a tak definovaná struktura byla jen pro tuto podmínku. Ta druhá chyba byla v cyklu for, kde jsi před výpisem jakéhokoliv zaměstnance zvětšoval proměnnou b o jedničku.
Ten cyklus for byl měl být takto (kvůli tučnýmu textu jsem přejmenoval tu promměnou b):

for(int a = p = 0; p<x; p++) //vypis 

{
cout<<"_________________________________________________________________________";
cout<<" Zamestnanec c."<<++p;
cout<<" "<<zamest[a].jmeno<<"\n VEK: "<<zamest[a].vek<<"\n PRACE: "<<zamest[a].prace;
}


A jinak celý opravený kód je tady:
# include <iostream> //pokud to nekdo rozjedete nedivte se je to jeste neohrabane

using namespace std;

struct firma
{
char jmeno[35];
int vek;
char prace[100];
}zamest;

int main()
{
char odp;
int x,p=0; //pocet zamestnancu

cout<<"\n\n Vytejte u databaze zamestnancu.\n"<<" Prejete si vytvorit seznam?(a/n)";
cin>>odp;

if(odp=='n') //odpoved ne
{
cout<<"tak to je vam tento program k nicemu";
cin.get();
cin.get();
}
else //odpoved ano
{
cout<<"\n Zadejte pocet zamestnancu: ";
cin>>x;
cin.get();

if(x>32000) // vic jak 32000 zamest.
{
cout<<"tolik zamstnancu urcite nemate:-D zadejte max 32000\n";
cout<<"\n Zadejte pocet zamestnancu: ";
cin>>x;
cin.get();

}
else // zacatek vyplnovani
{
firma zamest[x];
do
{
cout<<"\n Zadejte prosim jmeno "<< p+1<<". zamestnance ___________________________________\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b";
cin.getline(zamest[p].jmeno, 35);

cout<<" Jeho vek:___\b\b\b ";
cin>>zamest[p].vek;
cin.get();

cout<<" Jeho praci: ____________________________________________________________\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b ";
cin.getline(zamest[p].prace,100);
p++;
}while(p!=x);

for(int a = p = 0; p<x; p++) //vypis
{
cout<<"_________________________________________________________________________";
cout<<" Zamestnanec c."<<++a;
cout<<" "<<zamest[p].jmeno<<"\n VEK: "<<zamest[p].vek<<"\n PRACE: "<<zamest[p].prace;
}

}
}

cin.get();
cin.get();
return 0;
}

Nahlásit jako SPAM
IP: 193.179.179.–
zacatecnik0
Super člen
11. 12. 2007   #10
-
0
-

to ma byt nejaky ukol nebo jedes dle tutorialu? Chtelo by to jeste dost vylepsit :)

Nahlásit jako SPAM
IP: 88.100.84.–
Můj blog http://www.zacatecnik.wu.cz[br]Překládám anglickou knihu o wxWidgets http://wxwidgets.hustej.net
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, 59 hostů

Podobná vlákna

Pořadí Require — založil Akimi Keita

Pořadí vrstev — založil Roman

Prohození pořadí — založil Ondra_AS

Moderátoři diskuze

 

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý