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

Массив как поле класса: цикл в основной функции работает некорректно - C++

Восстановить пароль Регистрация
 
-ДоМоВоЙ-
 Аватар для -ДоМоВоЙ-
117 / 116 / 46
Регистрация: 19.01.2016
Сообщений: 434
Записей в блоге: 1
19.01.2016, 17:19     Массив как поле класса: цикл в основной функции работает некорректно #1
Ребят привет. Не могу понять в чем трабла... Цикл в основной функции работает не корректно... В чем беда не пойму...
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
36
37
38
39
40
41
42
43
#include<iostream>
#include<string>
using namespace std;
 
class employee
{
private:
enum{SZ=60};
char name[SZ];
long int number;
public:
void getdata()
{
cout<<"Введите имя, фамилию: ";cin.get(name,SZ);
cout<<"Введите табельный номер: ";
cin>>number;
}
void putdata()
{
cout<<name<<" имеет табельный номер: "<<number;
}
};
int main ()
{
employee s1[100];
int s=0;
char ch;
do
{
cout<<endl<<"Введите сотрудника, номер: "<<s+1<<" ";
cout<<endl;
s1[s++].getdata();
cout<<"Ввести еще одного сотрудника? ";
cin>>ch;
}while (ch!='n');
 
for (int j=0;j<s;j++)
    {
    cout<<"Сотрудник номер "<<j+1;
    s1[j].putdata();
    }
    return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2016, 17:19     Массив как поле класса: цикл в основной функции работает некорректно
Посмотрите здесь:

C++ Двумерный массив в динамической памяти как поле класса
Поле класса - динамический массив C++
Массив как поле класса C++
C++ Массив внутри класса (игровое поле)
C++ Как полю класса А обратится к приватной функции класса А?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
HardLogin
 Аватар для HardLogin
52 / 52 / 1
Регистрация: 20.01.2013
Сообщений: 640
Записей в блоге: 1
19.01.2016, 18:30     Массив как поле класса: цикл в основной функции работает некорректно #2
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
36
37
38
39
40
41
42
#include<iostream>
#include<string>
using namespace std;
 
class employee
{
private:
char name[60];
long int number;
public:
void getdata()
{
cout<<"Введите имя, фамилию: ";cin>>name;
cout<<"Введите табельный номер: ";
cin>>number;
}
void putdata()
{
cout<<name<<" имеет табельный номер: "<<number;
}
};
int main ()
{
employee s1[100];
int s=0;
char ch;
do
{
cout<<endl<<"Введите сотрудника, номер: "<<s+1<<" ";
cout<<endl;
s1[s++].getdata();
cout<<"Ввести еще одного сотрудника? ";
cin>>ch;
}while (ch!='n');
 
for (int j=0;j<s;j++)
    {
    cout<<"Сотрудник номер "<<j+1;
    s1[j].putdata();
    }
    return 0;
}
-ДоМоВоЙ-
 Аватар для -ДоМоВоЙ-
117 / 116 / 46
Регистрация: 19.01.2016
Сообщений: 434
Записей в блоге: 1
20.01.2016, 10:11  [ТС]     Массив как поле класса: цикл в основной функции работает некорректно #3
Не катит, цикл выдает бесконечность при вводе сотрудников.
ThePlague
 Аватар для ThePlague
95 / 95 / 59
Регистрация: 30.06.2015
Сообщений: 262
20.01.2016, 10:48     Массив как поле класса: цикл в основной функции работает некорректно #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Cadr, чистим баффер стрима

C++
1
2
3
4
5
6
7
8
9
10
11
    do
    {
        cin.clear(); //вот тут  
        fflush(stdin); // и тут
        cout<<endl<<"Enter employee number: "<<s+1<<" ";
        cout<<endl;
        s1[s++].getdata();
        cout<<"More employee? ";
        cin>>ch;
    }
    while (ch!='n');
Yandex
Объявления
20.01.2016, 10:48     Массив как поле класса: цикл в основной функции работает некорректно
Ответ Создать тему
Опции темы

Текущее время: 00:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru