Где кроется ошибка при заполнении массива структур?

Тема в разделе "C/C++/C#", создана пользователем salvia, 9 июн 2010.

Статус темы:
Закрыта.
  1. salvia

    salvia Гость

    У меня ввод данных в массив не происходит, только вот не пойму почему, может быть кто-нибудь подскажет, в чем кроется ошибка? Я не успеваю ввести данные в массив, как у меня появляется:
    Enter hobby #1: Enter ooplevel #1: Enter fullname #2 Enter hobby #2: Enter ooplevel #2: Enter fullname #3 Enter hobby #3: Enter ooplevel #3:

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

    #
    Код (Text):
    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;
    }
    или так:

    Код (Text):
    #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;
    }
     
  2. salvia

    salvia Гость

    Спасибо, rrrFer!
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей