Zdravím!
Učím se C++ podle učebnice Mistrovství v C++ a narazil jsem na drobný zádrhel v jednom úkolu. Dostal jsem kostru programu a mám dodělat tři funkce, které zobrazí obsahy několika struktur. To se mi povedlo celkem úspěšně, ale program mi vyhodí pár dalších blábolů, se kterýmy jsem moc nepočítal :-) Můžete prosím někdo zkouknout, v čem je chyba?
Děkuji.
#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 << "Zadejte velikost tridy: ";
int class_size;
cin >> class_size;
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]);
}
display3(ptr_stu, entered);
delete [] ptr_stu;
cout << "Hotovo\n";
cin.get();
cin.get();
return 0;
}
int getinfo(student pa[], int n)
{
int i;
for (i=0; i<n; i++)
{
cout << "Zadejte jmeno studenta: ";
cin.getline(pa[i].fullname, SLEN);
cout << "Zadejte hobby studenta: ";
cin.getline(pa[i].hobby, SLEN);
cout << "Zadejte uroven programovani: ";
cin >> pa[i].ooplevel;
cin.get();
i++;
}
return i;
}
void display1(student st)
{
cout << endl << st.fullname << endl << st.hobby << endl << st.ooplevel;
}
void display2(const student *ps)
{
cout << endl << ps->fullname << endl << ps->hobby << endl << ps->ooplevel;
}
void display3(const student pa[], int n)
{
for (int i=0; i<n; i++)
{
cout << endl << pa[i].fullname << endl << pa[i].hobby << endl << pa[i].ooplevel;
}
}