Struktury,Fkcie,Ukazatele – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Struktury,Fkcie,Ukazatele – C / C++ – Fórum – Programujte.comStruktury,Fkcie,Ukazatele – C / C++ – Fórum – Programujte.com

 

Dodiq0
Newbie
30. 6. 2007   #1
-
0
-

Chlapci, prosím vás kuknite sa mi na to...
#include <iostream>
using namespace std;
const int SLEN=30;
struct student
{
char fullname[SLEN];
char hobby[SLEN];
int ooplevel;
};
int getinfo(student pa[],int n);
void display1(student st);
void display2(const student * ps);
void display3(const student pa[], int n);
int main()
{
cout << "Zadaj velkost triedy: ";
int class_size;
if (!(cin >> class_size)) cin.clear();
while (cin.get() != '\n')
continue;
student * ptr_stu= new student[class_size];
int entered = getinfo(ptr_stu,class_size);
for (int i = 0; i<entered;i++)
{
display1(ptr_stu[i]);
display2(&ptr_stu[i]);
cout <<"::::::::::::::::::::\n";
}
system("PAUSE");
display3(ptr_stu, entered);
delete [] ptr_stu;
cout << "HOtovo!\n";
cin.get();
system("PAUSE");
return 0;
}
int getinfo(student pa[],int n)
{
int i=0;
while (i++<n)
{
cout << "Zadaj meno " << i << "studenta: ";
cin.getline(pa[i].fullname,SLEN);
cout << "Zadaj jeho hobby: ";
cin.get(pa[i].hobby,SLEN);
cout << "Zadaj ooplevel: ";
cin >> pa[i].ooplevel;
cin.get();
}
return i;
}
void display1(student st)
{
cout << "Meno : " << st.fullname << endl;
cout << "Hobby : " << st.hobby << endl;
cout << "Ooplevel : " << st.ooplevel << endl;
}
void display2(const student*ps)
{
cout << "Meno : " << (*ps).fullname << endl;
cout << "Hobby : " << (*ps).hobby << endl;
cout << "Ooplevel : " << (*ps).ooplevel << endl;
}
void display3(const student pa[],int n)
{
for (int i=0;i<n;i++)
{
cout << "Meno : " << pa[i].fullname << endl;
cout << "Hobby : " << pa[i].hobby << endl;
cout << "Ooplevel : " << pa[i].ooplevel << endl;
}
}
je to pre mňa nepochopiteľné...pauzujem to a ono si to robí čo chce...len to prebleskne a keď to debugujem dajak mi to píše bludy...pri kompilovaní mi chybu nenájde..

Nahlásit jako SPAM
IP: ...–
Beginner
Kruci
~ Anonymní uživatel
5 příspěvků
30. 6. 2007   #2
-
0
-

je smutne, ze uz poradne neznam C++, ale porad se mi tam nejake veci nezdaji

sice neni chyba, ale to continue tam je uplne zbytecne, ma tam byt jen strednik
while (cin.get() != '\n') continue; => while (cin.get() != '\n');

(*ps).fullname je to same jako ps->fullname

main je v tele tridy?
nebo nemas u funkci student:: ? Tedy nemas udelane ze metody patri do tridy?
neco jako konstruktor, destructor?

Kdyz programujes, tak si delej ladici vystupy. Vypsat treba vsechny promene, ale samozrejme jen u tech kde vys co tam ma byt. Kdyz tam je neco co neocekavas, tak vys ze chyba je nekde kolem.

Nahlásit jako SPAM
IP: ...–
Kruci
~ Anonymní uživatel
5 příspěvků
30. 6. 2007   #3
-
0
-

main je v tele tridy?
nebo nemas u funkci student:: ? Tedy nemas udelane ze metody patri do tridy?

sem se prehledl, nemas tam u metod/funkci student::, tedy funkce nemaji prislusnost k tride

a jeste, nemusis mit display1, display2, display3, staci jen u vsech stejny nazev display, je tam vlastnost C++, myslim ... eh nemuzu si vzpomenout:P

Nahlásit jako SPAM
IP: ...–
Jura
~ Anonymní uživatel
637 příspěvků
30. 6. 2007   #4
-
0
-

Sahal jsi na paměť, kterou jsi neměl alokovanou. Viz. smyčka while v getinfo().



#include <iostream>
using namespace std;
const int SLEN=30;
struct student
{
char fullname[SLEN];
char hobby[SLEN];
int ooplevel;
};


int getinfo(student pa[],int n);
void display1(student st);
void display2(const student * ps);
void display3(const student pa[], int n);

int main()
{
cout << "Zadaj velkost triedy: ";
int class_size;
if (!(cin >> class_size)) cin.clear();
while (cin.get() != '\n');
student * ptr_stu= new student[class_size];
int entered = getinfo(ptr_stu,class_size);
for (int i = 0; i<entered;i++)
{
display1(ptr_stu[i]);
display2(&ptr_stu[i]);
cout <<"::::::::::::::::::::\n";
}
system("PAUSE");
display3(ptr_stu, entered);
delete [] ptr_stu;
cout << "HOtovo!\n";
cin.get();
system("PAUSE");
return 0;
}

int getinfo(student pa[],int n)
{
int i;
for(i=0; i < n ; ++i)
{
cout << "Zadaj meno " << i+1 << "studenta: ";
cin.getline(pa[i].fullname,SLEN);
cout << "Zadaj jeho hobby: ";
cin.get(pa[i].hobby,SLEN);
cout << "Zadaj ooplevel: ";
cin >> pa[i].ooplevel;
cin.get();
}
return i;
}
void display1(student st)
{
cout << "Meno : " << st.fullname << endl;
cout << "Hobby : " << st.hobby << endl;
cout << "Ooplevel : " << st.ooplevel << endl;
}
void display2(const student*ps)
{
cout << "Meno : " << (*ps).fullname << endl;
cout << "Hobby : " << (*ps).hobby << endl;
cout << "Ooplevel : " << (*ps).ooplevel << endl;
}
void display3(const student pa[],int n)
{
for (int i=0;i<n;i++)
{
cout << "Meno : " << pa[i].fullname << endl;
cout << "Hobby : " << pa[i].hobby << endl;
cout << "Ooplevel : " << pa[i].ooplevel << endl;
}
}

Nahlásit jako SPAM
IP: ...–
Dodiq0
Newbie
30. 6. 2007   #5
-
0
-

Diks chlapi, kruci to není môj kód to je zadanie a ja som to mal dotvoriť... obvykle hľadám chybu sám ale teraz nemám čas musím toho stihnúť veľa lebo idem pondelok preč..:p

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

Podobná vlákna

Ukazatele — založil Albornoz

Ukazatele — založil Šimon

C# ukazatelé — založil Kubas129

Ukazatele — založil IBTR

Ukazatele — založil demo

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ý