Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
Другие темы раздела
C++ файлы http://www.cyberforum.ru/cpp-beginners/thread142817.html
на завтра надо лабу с файлами сделать, а я с ними не работал никогда(( дайте пожалуйста кусок кода или маленькую прогу чтобы разобраться (ввод,вывод,как к файлу обратиться)
C++ В работающей проге нужно только сохранить отдельно рисунок. Вобщем у меня есть программа(графика), но у меня дома на семерке она не хочет открываться. А мне завтра её сдавать((( нужно распечатать... Не могли бы ли вы просто сохранить изображение результата или хотя бы сфоткать его и прислать мне. Вот код #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> #include<dos.h> http://www.cyberforum.ru/cpp-beginners/thread142816.html
C++ лабораторная работа
Дана матрица B(2,2). Вывести на печать транспонированную матрицу. нужна помощь проффесионалов в этом деле..
Умножение матриц C++
В чем проблема? #include<iostream> #include<iomanip> #include <time.h> using namespace std; char _quit_; int N;
C++ Без ссылки - работает, а с - нет. http://www.cyberforum.ru/cpp-beginners/thread142803.html
Вот код: #include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; class String { private: char a;
C++ обработка символьной информации Здраствуйте,прошу помощи со следующей задачей: В заданном тексте найти самое длинное слово в котором все буквы разные примерные мои наброски на самое длинное слово #include <conio.h> #include <stdio.h> #include <string.h> подробнее

Показать сообщение отдельно
sunplant
0 / 0 / 0
Регистрация: 07.04.2010
Сообщений: 11
08.06.2010, 20:58     Где кроется ошибка при заполнении массива структур?
У меня ввод данных в массив не происходит, только вот не пойму почему, может быть кто-нибудь подскажет, в чем кроется ошибка? Я не успеваю ввести данные в массив, как у меня появляется:
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.
Функция запрашивает и сохраняет данные о студентах. Ввод прекращается либо после наполнения массива, либо при вводе пустой строки вместо имени студента.
Функция возвращает дейсв. кол-во элементов.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#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;
            }


или так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru