Problem s cyklom v ulohe 5 – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Problem s cyklom v ulohe 5 – C / C++ – Fórum – Programujte.comProblem s cyklom v ulohe 5 – C / C++ – Fórum – Programujte.com

 

eraser170
Newbie
5. 11. 2006   #1
-
0
-

Nazdar.. mam taky malinky problem... robim ulohu k 5lekcii a potrebujem nacitat meno, vek a druh prace do striktury. Kod mi skompiluje program sa zapne, zadam meno a cyklus mi hnet prebehne(t.j. nemozem zadat vek a druhe prace neviete vcom mozem mat chybu?) tu je moj zdrojovy kod k tomu programu...



#include <iostream>
#include <string>
#include <stdlib.h>
#include <cstring>

//nacitanie diakritiky
#include "diakritikaSVK.cpp"


using namespace std;

//struktura pre zamestnancov
struct zamestnanci
{
string meno;
int vek;
string praca;
};


int main()
{
string hv="*";
for(int i=0; i<44; i++)
{
cout<<hv;
};
cout << "n* Pou" << zz << _i << "va" << ss << " software firmy NAKOPNI TO ... *n";

for(int i=0; i<44; i++)
{
cout<<hv;
};
cout << "nnZadaj pocet zamestnancov, pre ktorych chces ulozit informacie: n";
int pocet;
cin >> pocet;
zamestnanci zamestnanec[pocet];
for(int i=0; i<pocet; i++)
{
string line1;
string line2;
string line3;
string line4;
string line5;
string line6;
string line7;

system("cls");
cout << "Zadaj meno pre zamestnanca cislo " << i+1 <<" : n";
cin >> zamestnanec[i].meno;
cout << "Zadaj vek zamestnanca cislo " << i+1 <<" : n";
cin.get();
cin >> zamestnanec[i].vek;
cout << "Zadaj pracu zamestnanca cislo " << i+1 <<" : n";
cin >> zamestnanec[i].praca;
system("cls");
cout << "Pridany novy zamestnanec...n";
line2 = "* Meno * " + zamestnanec[i].meno + " *";

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

Nahlásit jako SPAM
IP: ...–
eraser170
Newbie
5. 11. 2006   #2
-
0
-

dodatok: teras som zistil, ze to chodi jak chce ras to ide normalne a ras to takto prebehne... :( PLS help

Nahlásit jako SPAM
IP: ...–
eraser170
Newbie
5. 11. 2006   #3
-
0
-

dalsie zistenie.. zle to ide iba vtedy ak retazec kde zadavam meno obsahuje medzeru

Nahlásit jako SPAM
IP: ...–
Peter D.0
Expert
5. 11. 2006   #4
-
0
-

  string line1;

string line2;
string line3;
string line4;
string line5;
string line6;
string line7;

co ma akoze robit toto ?

to do cyklu nepatri.

Nahlásit jako SPAM
IP: ...–
Program nemusi fungovat rychle, staci ze funguje dostatecne rychle.
Rišo Kakaň0
Stálý člen
5. 11. 2006   #5
-
0
-

A prečo ti funkcia main vracia hodnotu 1???

Nahlásit jako SPAM
IP: ...–
Matěj Pácha0
Super člen
5. 11. 2006   #6
-
0
-

Nechci vypadat jako hnidopich, ale nemá být náhodou v
zamestnanci zamestnanec[pocet];
pocet konstantou? Teda tak nás to aspon učili, že dynamicky vytvářené pole by se mělo vytvářet pomocí new, rušit pomocí delete...
Jestli jsem něco přehlédl, tak se omlouvám..

Nahlásit jako SPAM
IP: ...–
Ajem tíčr, andrgraund tíčr!
eraser170
Newbie
6. 11. 2006   #7
-
0
-

mephi píše:#
#

  string line1;#
# string line2;#
# string line3;#
# string line4;#
# string line5;#
# string line6;#
# string line7;
#
#co ma akoze robit toto ?#
##
#to do cyklu nepatri.


heh.. to som akosi mal k predchodzej verzii a ket som ju upravil zabudol som to vymazat.... :)

paashi píše:#
# Nechci vypadat jako hnidopich, ale nemá být náhodou v#
#zamestnanci zamestnanec[pocet];#
#pocet konstantou? Teda tak nás to aspoň učili, že dynamicky vytvořené pole by se mělo vytvářet pomocí new, rušit pomocí delete...#
#Jestli jsem něco přehlídl, tak se omlouvám..


ale ten pocet musis zadat pokial som to dobre precital..... :)

Nahlásit jako SPAM
IP: ...–
Pedro0
Stálý člen
7. 11. 2006   #8
-
0
-

cin >> zamestnanec[i].meno;

problem je tu.
Ide o to, ze operator >> je v istream pretazeny tak, aby nacital data len po medzeru.
mozes to vyriesit pomocou

getline(cin, zamestnanec[i].meno); // pisem z hlavy cize moze byt nejaka chybka, netestujem

pravdupovediac sa divim, ze ti to vobec zkompiluje kedze na zadanie velkosti nedynamicky alokovaneho pola musi byt pouzita konstanta inac prekladac protestuje (aspon mne protestoval stale ak som nehodou zabudol na const)

Nahlásit jako SPAM
IP: ...–
Vsetci ste blazni, to len ja som lietadlo
Mat?j P?cha0
Super člen
8. 11. 2006   #9
-
0
-

#
#ale ten pocet musis zadat pokial som to dobre precital..... :)#
#


To je prave to - velikost staticky alokovane pameti, o jejimz prideleni se rozhoduje v dobe prekladu (coz odpovida uvedenemu zapisu), musi byt znama uz v dobe prekladu. Pro tyhle pripady muzes v jazyku C pozadat o prideleni pameti az pri behu programu, cemuz se rika dynamicke pridelovani pameti. Vymyslelo se to prave pro tyhle pripady, kdy velikost pole je urcena az na zaklade vstupu do programu (nebo funkce), aby se zbytecne nedrzela pamet pro pole, ktere je poloprazdne. Taky se uprimne divim, ze ti to prekladac vzal.

Nahlásit jako SPAM
IP: ...–
Ajem tíčr, andrgraund tíčr!
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, 128 hostů

Podobná vlákna

Problem s cyklom — založil jonhnw

Problem — založil Ghosta

Problém — založil pali6

Problém — založil rotoro

Problém — založil Já

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ý