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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
amor1k
Студент
147 / 147 / 24
Регистрация: 18.01.2011
Сообщений: 469
#1

не работает getline - C++

17.12.2011, 19:09. Просмотров 1081. Ответов 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;
        }
    }
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2011, 19:09     не работает getline
Посмотрите здесь:

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

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

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

Не работает getline! - C++
Почему-то, когда ввожу строку с помощью cin.getline, всё равно строка записывается до первого пробела :( #include &lt;conio.h&gt;; #include...

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

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

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

Не работает функция getline ! - C++
Здравствуйте, помогите, если можете. Не корректно работает функция getline ! Я облазил google, нашел много похожих постов, но...

Не работает getline в VS2012 - C++
От код на линуксе все отлично а от в визуалке проблемы #include &lt;fstream&gt; #include &lt;cstring&gt; #include &lt;iostream&gt; using namespace...

Не работает функция getline(); - C++
Помогите, после ввода в переменную int c не выполняется функция getline, программа ее просто пропускает. #include &lt;iostream&gt; using...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sandye51
программист С++
681 / 583 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
17.12.2011, 19:14     не работает getline #2
может на предыдущей строке надо было перенос поставить?
amor1k
Студент
147 / 147 / 24
Регистрация: 18.01.2011
Сообщений: 469
17.12.2011, 19:19  [ТС]     не работает getline #3
Если так
C++
1
cout << "Введите bvz: \n";
то ничего, все также.
sandye51
программист С++
681 / 583 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
17.12.2011, 19:23     не работает getline #4
C++
1
std::cin.get();
добавь перед
C++
1
std::getline(std::cin, name);
amor1k
Студент
147 / 147 / 24
Регистрация: 18.01.2011
Сообщений: 469
17.12.2011, 19:27  [ТС]     не работает getline #5
благодарю, теперь нормально
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
17.12.2011, 19:38     не работает getline #6
Добавь перед getline
C++
1
cin.ignore (256,'\n');
Добавлено через 1 минуту
Цитата Сообщение от sandye51 Посмотреть сообщение
добавь перед
А если не только '\n' в буфере остались?
Yandex
Объявления
17.12.2011, 19:38     не работает getline
Ответ Создать тему
Опции темы

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