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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2010, 20:39   #1
sunplant
Пользователь
 
Регистрация: 07.04.2010
Сообщений: 13
По умолчанию Где кроется ошибка при заполнении массива структур?

У меня ввод данных в массив не происходит, только вот не пойму почему, может быть кто-нибудь подскажет, в чем кроется ошибка?

Функция getinfo принимает 2 аргумента: указатель на первый элемент массива структур student и кол-во элементов в массиве int.
Функция запрашивает и сохраняет данные о студентах. Ввод прекращается либо после наполнения массива, либо при вводе пустой строки вместо имени студента.
Функция возвращает дейсв. кол-во элементов.

Код:
#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);

int main()
{
	student ps[3];	
	int number = getinfo(ps, 3);
	cout << "Number enter: " << number << endl;
	return 0;
}

int getinfo(student pa[], int n)
{
	int i;
	for (i=0; i < n; i++)
	{
		cout << "Enter fullname #" << i + 1 << ": ";
		cin >> pa[i].fullname[SLEN];		
		cout << "Enter hobby #" << i + 1 << ": ";
		cin >> pa[i].hobby[SLEN];		
		cout << "Enter ooplevel #" << i + 1 << ": ";
		(cin >> pa[i].ooplevel).get();		
		if (cin >> pa[i].fullname[SLEN] == " ")
				break;
		}
		return i;
			}
или так:

Код:
#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); 

int main()
{
	student ps[3];	
	int number = getinfo(ps, 3);
	cout << "Number enter: " << number << endl;
	return 0;
}

int getinfo(student pa[], int n)
{
	int i;
	for (i=0; i < n; i++)
	{
	cout << "Enter #" << i + 1 << ": ";
	while (cin >> pa[i].fullname[SLEN] >> pa[i].hobby[SLEN] && (cin >> pa[i].ooplevel).get() )
    {
  if (cin >> pa[i].fullname[SLEN] == " ")
				break;		
			}	
	}
	return i;
}
sunplant вне форума Ответить с цитированием
Старый 08.06.2010, 20:47   #2
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Код:
#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);

int main()
{
	student ps[3];	
	int number = getinfo(ps, 3);
	cout << "Number enter: " << number << endl;
	return 0;
}

int getinfo(student pa[], int n)
{
	int i;
	for (i=0; i < n; i++)
	{
		cout << "Enter fullname #" << i + 1 << ": ";
		cin >> pa[i].fullname;
		if(strlen(pa[i].fullname) == 0)
			break;
		cout << "Enter hobby #" << i + 1 << ": ";
		cin >> pa[i].hobby;		
		cout << "Enter ooplevel #" << i + 1 << ": ";
		cin >> pa[i].ooplevel;	
	}
	return i;
}
Пустая строчка в консоли вводится как CTRL+Z
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Старый 08.06.2010, 20:53   #3
sunplant
Пользователь
 
Регистрация: 07.04.2010
Сообщений: 13
По умолчанию

Да, но я не успеваю ввести данные в массив, как у меня появляется:
Enter hobby #1: Enter ooplevel #1: Enter fullname #2 Enter hobby #2: Enter ooplevel #2: Enter fullname #3 Enter hobby #3: Enter ooplevel #3:
sunplant вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу понять где ошибка при сортировке строки!? Dema91 Помощь студентам 1 14.04.2010 20:11
Создание класса с полем типа TStringList. Ошибка при его заполнении Son Общие вопросы Delphi 8 13.04.2010 21:38
ошибка в заполнении двумерного массива в файл серг Общие вопросы C/C++ 0 19.02.2010 09:43
Ошибка при заполнении таблицы masterdela БД в Delphi 6 26.01.2009 01:16
Возник вопрос при заполнении массива.. SnakeMan Помощь студентам 8 15.01.2008 12:31