Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
Студент
148 / 148 / 64
Регистрация: 18.01.2011
Сообщений: 469
1

не работает getline

17.12.2011, 19:09. Показов 1471. Ответов 5
Метки нет (Все метки)

Есть код (писал не я), но не могу понять, почему getline() игнорируется в строке 72. Сначала не работало в функции класса, потом решил сделать так, как в этом коде, но без толку...
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#include <C:\main.h>
 
class School
{
    string name;
    int number;
    int stage;
    int amounts_students;
    int budget;
    string adress;
    static int countOfSchool;
public:
    School() { budget = 15000; countOfSchool++; number = 0; name = ""; adress = ""; }
    void Open_School(string name, string adress);
    void Delete_School();
    int Lower_stage(int new_stage);
    int Get_money();
    int Get_count();
    void Get_info();
    int Get_number();
};
 
int School::countOfSchool = 0;
int School::Get_count()
{
    return countOfSchool;
}
void School::Open_School(string name, string adress)
{
    cout << "Введите номер школы: "; cin >> this->number;
    cout << "\nВведите начальную ступень: "; cin >> this->stage;
    
}
void School::Delete_School()
{
    name = "";
    number = 0;
    stage = 0;
    adress = "";
}
void School::Get_info()
{
    cout << "Имя: " << name << endl;
    cout << "Номер: " << number << endl;
    cout << "Ступень: " << stage << endl;
    cout << "Адрес: " << adress << endl;
}
int School::Get_number()
{ 
    return number;
}
 
int main()
{
    setlocale(0,"");
    School *s;
    string name, adress;
    int n = 1, num, choice, j = 0;
    while(1)
    {
        system("cls");
        cout << "1. Добавить школу" << endl;
        cout << "2. Добавить ученика в школу" << endl;
        cout << "3. Убрать школу" << endl;
        cout << "4. Показать школу" << endl;
        cin >> choice;
        switch(choice)
        {
        case 1:
            system("cls");
            cout << "Введите bvz: ";
            getline(cin,name);
            s = new School[n];
            s[j].Open_School(name, adress);
            s[j].Get_info();
            cout << "Школа добавлена!" << endl;
            j++;
            _getch();
            break;
        case 3:
            system("cls");
            cout << "Введите номер школы: ";
            cin >> num;
            for(int i = 0; i < s[n].Get_count(); i++)
            {
                if(s[i].Get_number() == num)
                    s[i].Delete_School();
            }
            cout << "Школа уничтожена!";
            _getch();
            break;
        case 4:
            system("cls");
            cout << "Введите номер школы: ";
            cin >> num;
            for(int i = 0; i < s[n].Get_count(); i++)
            {
                if(s[i].Get_number() == num)
                    s[i].Get_info();
            }
            _getch();
            break;
        }
    }
 
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.12.2011, 19:09
Ответы с готовыми решениями:

Не работает getline()
У меня есть класс, в котором в функции printPaste считывается строка пользователем. При вызове этой...

Не работает getline()
Это часть из моего курсового, почему-то когда я запрашиваю заполнение структуры, то на то, что...

Не работает getline
Привет всем! непонимаю почему не работает getline. вот код #include &lt;training.h&gt; #include...

Не работает getline();
Всем доброго дня:) Не работает кусочек кода: class Employee { private: string name;

5
программист С++
841 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
17.12.2011, 19:14 2
может на предыдущей строке надо было перенос поставить?
1
Студент
148 / 148 / 64
Регистрация: 18.01.2011
Сообщений: 469
17.12.2011, 19:19  [ТС] 3
Если так
C++
1
cout << "Введите bvz: \n";
то ничего, все также.
0
программист С++
841 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
17.12.2011, 19:23 4
C++
1
std::cin.get();
добавь перед
C++
1
std::getline(std::cin, name);
1
Студент
148 / 148 / 64
Регистрация: 18.01.2011
Сообщений: 469
17.12.2011, 19:27  [ТС] 5
благодарю, теперь нормально
0
go
Эксперт С++
3643 / 1375 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
17.12.2011, 19:38 6
Добавь перед getline
C++
1
cin.ignore (256,'\n');
Добавлено через 1 минуту
Цитата Сообщение от sandye51 Посмотреть сообщение
добавь перед
А если не только '\n' в буфере остались?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.12.2011, 19:38

Не работает getline!
Почему-то, когда ввожу строку с помощью cin.getline, всё равно строка записывается до первого...

не работает getline
Подскажите, пожалуйста, почему не работает getline? Нужно ввести порядковый номер служащего и его...

Не работает getline
Есть прога, которая считает предложения и выводит самое длинное.Есть главный кейс с меню. В первом...

Не работает getline()
Здравствуйте, есть такой код: bool Library::AddNewBook() { bool repeat = true; char answer;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.