Здрасте. Я сейчас самостоятельно учу С++ поэтому небыло у кого спросить решил пойти за помощью на этот форум. Ближе к телу.
Тут есть задача на масив структур. Я застопорился в 2-х функциях. Первая это ввод в масив.
Сама структура:
Код: Выделить всё
struct student
{
char fullname[slen];
char hobby[slen];
int ooplevel;
};
Основной код:
Код: Выделить всё
int getinfo(student pa[], int n)
{
int i = 0;
while(i<n)
{
cout << "vvedite imya v masiv: "<<i+1<<" " ;
cin.get(pa[i].fullname, 30).get();
if (pa[i].fullname[0] == ' ')
break;
cout << "vvedite hobby ";
cin.get(pa[i].hobby, 30).get();
cout<< "vvedite vozrast ";
while (! (cin>> pa[i].ooplevel))//вот сдесь заковырка
{
cin.clear();
cout << "\n1vvedite vozract\n";
}
i++;
}
return i;
}
тут после ввода возраста чтото непонятное: не вводит ни имя ни хобби для второй структуры ввести возраст можно только после фразы в цыкле. Подумал что при вводе возраста выставляется флаг ошибки и после цикла поставил cin.clear() но толку не дало.
Второе: функция вывода данных из структуры при получении указателя на нее. Код:
Код: Выделить всё
void display2(const student * ps)
{
cout<< "\n\n\n " << *ps->fullname;
cout <<"\n" << *ps->hobby<< endl;
cout << *ps->ooplevel<< endl;//тут компилятор выдает ошибку
}
Что тут не так тоже не пойму.
P.S. Если спросил очевидные вещи сильно не бейте - я только учусь и за полдня мучений их не увидел.
Здрасте. Я сейчас самостоятельно учу С++ поэтому небыло у кого спросить решил пойти за помощью на этот форум. Ближе к телу.
Тут есть задача на масив структур. Я застопорился в 2-х функциях. Первая это ввод в масив.
Сама структура:
[code]
struct student
{
char fullname[slen];
char hobby[slen];
int ooplevel;
};
[/code]
Основной код:
[code]
int getinfo(student pa[], int n)
{
int i = 0;
while(i<n)
{
cout << "vvedite imya v masiv: "<<i+1<<" " ;
cin.get(pa[i].fullname, 30).get();
if (pa[i].fullname[0] == ' ')
break;
cout << "vvedite hobby ";
cin.get(pa[i].hobby, 30).get();
cout<< "vvedite vozrast ";
while (! (cin>> pa[i].ooplevel))//вот сдесь заковырка
{
cin.clear();
cout << "\n1vvedite vozract\n";
}
i++;
}
return i;
}
[/code]
тут после ввода возраста чтото непонятное: не вводит ни имя ни хобби для второй структуры ввести возраст можно только после фразы в цыкле. Подумал что при вводе возраста выставляется флаг ошибки и после цикла поставил cin.clear() но толку не дало.
Второе: функция вывода данных из структуры при получении указателя на нее. Код:
[code]
void display2(const student * ps)
{
cout<< "\n\n\n " << *ps->fullname;
cout <<"\n" << *ps->hobby<< endl;
cout << *ps->ooplevel<< endl;//тут компилятор выдает ошибку
}
[/code]
Что тут не так тоже не пойму.
P.S. Если спросил очевидные вещи сильно не бейте - я только учусь и за полдня мучений их не увидел.