Dobry den prosim vas o pomoc som zacitocnik a potreboval by som pomoct s tymto problemom ako zapisat structuru meno program sa spusti cely ale pri zadava mena zamestnanca sa program vypne ako mam program upravit aby k tomu nedochadzalo a spravil aj vypis zo vsetkym ?
#include <iostream>
using namespace std;
int main(){
cout<<"////////////////////////////////////////////////////////////////////////////////\n";
cout<<"////////////////////////////Editor Firmy////////////////////////////////////////\n";
cout<<"////////////////////////////////////////////////////////////////////////////////\n";
//Zaciatok vyrtvarania fiktivnej firmy
cout<<"Zadajte nazov ako sa ma volat vasa firma : \n";
char firma[100];
cin.get(firma,100);
cout<<"Vasa nova firma sa vola : \n"<<firma<<endl;
cout<<"\n Pokracujte dalej stalcenim etntera \n";
cin.get();
cin.get();
//ukoncenie hlavy firmy a pokracovanie na vypis zamestnancov
const int i=4500;
struct zamestnancy {
char meno[100];
int vek;
int IDF;
}osoba[i];
zamestnancy vek,IDF;
int a,j,x;
const int b=4000;
cout<<"Ak chcete zadat noveho zamestnanca stlacte 1 ak chcete pokracovat na vypis stlacte 2 ";
cin>>a;
switch (a) {
case 1:cout<<"Zadajte kolko zamstnancou chcete vlozit do programu : "; //vkladanie udajou o zamestnancov
cin>>x;
for (j=0; j<=x; j++){
cin.get();
cout<<"Zadajte meno noveho zamestnanca : ";
cin.get(osoba[i].meno,x);
cin.get();
cout<<"Zadajte vek zamestnanca : ";
cin>>vek.vek;
cin.get();
cout<<"Zadajte IDF zamestnanca : ";
cin>>IDF.IDF;
}
break;
default : cout<<"Stlacte enter a pokracujte dalej\n ";
cin.get();
}
//vypis zamestnancou
cout<<"Kolko zaestnancov si prajete vypisat : ";
cin>>x;
for (j=0; j<=x; j++){
cout<<"Meno : "<<osoba[i].meno<<endl;
cout<<"Vek : "<<vek.vek<<endl;
cout<<"IDF zamestnanca : "<<IDF.IDF<<endl;
}
cout<<"\n Program ukoncite stlacenim tlacidla enter 1x \n";
cin.get();
cin.get();
return 0;
}
Fórum › C / C++
Structury
No takže toto mi nedá aj keď sa do C++ moc nerozumiem: zamestnancy??? :-o WTF? Nie je tam náhodou mäkké y? To úplne kole oči aj takému pravopisnému netvorovi ako som ja :-D
No a aby som len nekecal. Som si aj hľadal čo robí cin.get() ale študovať to nemám čas, ale prečo to načítaš tým spôsobom? Prečo nie takto?
cin >> osoba[i].meno; // osoba[i].meno by malo byť string
EDIT: Tak som sa na to trošku pozrel a myslím, že by si to mohol zmeniť takto:
cin.get(osoba[i].meno,100);
Potom som ešte pozeral, že tie for-i
for (j=0; j<=x; j++)
by som upravil nafor (j=0; j<x; j++)
#include <iostream>
using namespace std;
int a,x,j,i;
char firma[100];
int main(){
cout<<"////////////////////////////////////////////////////////////////////////////////\n";
cout<<"////////////////////////////Editor Firmy////////////////////////////////////////\n";
cout<<"////////////////////////////////////////////////////////////////////////////////\n";
//Zaciatok vyrtvarania fiktivnej firmy
cout<<"Zadajte nazov ako sa ma volat vasa firma : \n";
cin >> firma;
cin.clear();
cout<<"Vasa nova firma sa vola : \n"<<firma<<endl;
cout<<"\n Pokracujte dalej stalcenim etntera \n";
cin.get();
cin.get();
//ukoncenie hlavy firmy a pokracovanie na vypis zamestnancov
struct zamestnancy
{
char meno[100];
int vek;
int IDF;
}osoba[i];
cout<<"Ak chcete zadat noveho zamestnanca stlacte 1 ak chcete pokracovat na vypis stlacte 2 ";
cin>>a;
switch (a) {
case 1:cout<<"Zadajte kolko zamstnancou chcete vlozit do programu : "; //vkladanie udajou o zamestnancov
cin>>x;
for (j=1; j<=x; j++){
cout<<"Zadajte meno noveho zamestnanca : ";
cin>>osoba[j].meno;
cin.clear();
cout<<"Zadajte vek zamestnanca : ";
cin>>osoba[j].vek;
cin.get();
cout<<"Zadajte IDF zamestnanca : ";
cin>>osoba[j].IDF;
cin.clear();
}
break;
default : cout<<"Stlacte enter a pokracujte dalej\n ";
cin.get();
}
//vypis zamestnancou
cout<<"Kolko zaestnancov si prajete vypisat : ";
cin>>x;
for (j=1; j<=x; j++){
cout<<"Meno : "<<osoba[j].meno<<endl;
cout<<"Vek : "<<osoba[j].vek<<endl;
cout<<"IDF zamestnanca : "<<osoba[j].IDF<<endl;
}
cout<<"\n Program ukoncite stlacenim tlacidla enter 1x \n";
cin.get();
cin.get();
return 0;
}
neco jsem tam dal neco opravil ale este je potreba to dodelat mi to haze error :(
Asi takto:
cin >> osoba[j].meno;
Struktura by se měla jmenovat osoba, a až pak bys měl vytvořit pole osob,
cin>>osoba[j].vek;
cin>>osoba[j].IDF;
Zkus se na struktury podívat ještě jednou, je to základ... ne nadarmo se to jměnuje "strukturované programování"
Datlik napsal:
int a,x,j,i;
}osoba[i];
Tyhle dva řádky se mi nelíbí.
1) Pokud chceš alokovat pole takovýmto způsobem, musí být i konstantní
2) Pokud chceš alokovat pole dynamicky, dělá se to pomocí operátoru
3) Proměnná i není vůbec inicializovaná (To platí pro oba případy)
Jinak, jak řikal KIIV, bylo by dobré, kdyby jsi popsal, jakou chybu a kde ti to hlásí
tady de o to ze jsem to jen prepsal ale to neva odpovedet muzu ted uz se mi ty radky taky nelibi nak jsem si nevsiml a chybu nwm zadam jmeno zamestnance a chci zadat vek dam enter a napise omlouvame se alke v aplikai doslo k problemu a je nutno ji zavrit
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žení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 84 hostů
Podobná vlákna
Seřazení structury podle podle počtu jmen — založil jurajs84
Moderátoři diskuze