Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.02.2010, 15:17   #1
-ushёl-
Форумчанин
 
Аватар для -ushёl-
 
Регистрация: 04.02.2009
Сообщений: 141
Вопрос как правильно написать функцию?

Подскажите как прервать ввод в функции getinfo()?
#include <cstdlib>
#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(int argc, char *argv[])
{
cout<<"Vvedite razmer klassa:";
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<<"Done\n";
system("PAUSE");
return EXIT_SUCCESS;
}
int getinfo(student pa[],int n)//Функция должна запрашивать и сохранять данные о студентах.Ввод прекращается либо после наполнения массива либо при вводе пустой строки вместо имени студента.Функция возвращает действительное кол-во введённых элементов.
{
int total=0;
for(int i=0;i<n;i++)
{
cout<<"vvedite imya:\n";
cin.get(pa[i].fullname,30).get();//сделал чтобы была возможность чтения имени и фамилии
total++;
}
for(int i=0;i<n;i++)
{
cout<<"vvedite hobby:\n";
cin.get(pa[i].hobby,30).get();
}
for(int i=0;i<n;i++)
{
cout<<"vvedite ooplevel:\n";
cin>>pa[i].ooplevel;
}
return total;
}
void display1(student st)
{
cout<<"WORK function display1!\n";
cout<<st.fullname<<"\n";
cout<<st.hobby<<"\n";
cout<<st.ooplevel<<"\n";
}
void display2(const student* ps)
{
cout<<"WORK function display2!\n";
cout<<ps->fullname<<endl;
cout<<ps->hobby<<endl;
cout<<ps->ooplevel<<endl;
}
void display3(const student pa[],int n)
{
cout<<"WORK function display3!\n";
for(int i=0;i<n;i++)
{
cout<<pa[i].fullname<<endl;
cout<<pa[i].hobby<<endl;
cout<<pa[i].ooplevel<<endl;
}
}
-ushёl- вне форума Ответить с цитированием
Старый 23.02.2010, 15:24   #2
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Код кто за тебя будет форматировать и в тег выделять??

Код:
int getinfo(student pa[],int n)
{
int total=0;
for(int i=0;i<n;i++)
{
cout<<"vvedite imya:\n";
cin.get(pa[i].fullname,30).get();
if(pa[i].fullname == "")break;
total++;
cout<<"vvedite hobby:\n";
cin.get(pa[i].hobby,30).get();
cout<<"vvedite ooplevel:\n";
cin>>pa[i].ooplevel;
}
return total;
}
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer

Последний раз редактировалось Ozerich; 23.02.2010 в 15:28.
Ozerich вне форума Ответить с цитированием
Старый 23.02.2010, 15:47   #3
-ushёl-
Форумчанин
 
Аватар для -ushёl-
 
Регистрация: 04.02.2009
Сообщений: 141
По умолчанию

Пробовал уже и этот вариант!неподходит.Ввожу,допустим размер класса равный 2,затем ввожу данные(имя,хобби,...)но функция прерывается не дав мне ввести остальных студентов...(я ведь укаазал двоих)
-ushёl- вне форума Ответить с цитированием
Старый 23.02.2010, 16:41   #4
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Код:
#include <vector>
#include <string>
#include <iostream>

using namespace std;

struct item
{
	char fullName[30];
	char hobby[30];
	int oopLevel;
};

int getInfo(vector <item> &pa, int n)
{
	int i;
	int total = 0;
	string str;
	for(i = 0; i < n; i++)
	{
		cout << "Vvedite imya" << endl;
		cin >> pa[i].fullName;
		total++;
		cout << "Vvedite hobby" << endl;
		cin >> pa[i].hobby;
		cout << "Vvedite oopLevel" << endl;
		cin >> pa[i].oopLevel;
	}
	return total;
}

int main()
{
	int n;
	cout << "Vvedite razmer klassa" << endl;
	cin >> n;
	vector <item> klass(n);
	getInfo(klass, n);
	return 0;
}
Как определить на пустую строку через потоки не знаю.
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer

Последний раз редактировалось Ozerich; 23.02.2010 в 16:59.
Ozerich вне форума Ответить с цитированием
Старый 23.02.2010, 16:48   #5
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Ozerich
Цитата:
Код кто за тебя будет форматировать и в тег выделять??
а за тебя кто форматировать будет?
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 23.02.2010, 16:57   #6
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Цитата:
Сообщение от pproger Посмотреть сообщение
2Ozerich
а за тебя кто форматировать будет?
Когда пишу сам, то форматирую, а когда редактирую код, такой как в 1 посте, то необязательно форматировать
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Старый 26.02.2010, 20:11   #7
-ushёl-
Форумчанин
 
Аватар для -ushёl-
 
Регистрация: 04.02.2009
Сообщений: 141
По умолчанию

спасибо=) sorry В след.раз буду оформлять
-ushёl- вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно написать?? Дима я Общие вопросы C/C++ 6 25.11.2009 22:52
Randomize...как правильно написать Lifefine C++ Builder 2 07.11.2009 21:27
Как правильно описать функцию? аукшщ Общие вопросы C/C++ 2 19.01.2009 11:37
Как правильно написать скрипт? Cobra Общие вопросы по Java, Java SE, Kotlin 3 14.06.2008 13:10
Как правильно написать процедуру Cold Went Компоненты Delphi 1 29.04.2008 14:21