Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
POWERR
0 / 0 / 0
Регистрация: 15.07.2015
Сообщений: 27
#1

Ввод данных пока строка не пустая - C++

08.11.2016, 18:30. Просмотров 597. Ответов 20
Метки нет (Все метки)

Задача такая: Создать класс билет, который содержит поля:фамилия, номер рейса, и вводить данные пока строка с фамилией не пустая.

Я создал класс, включил в него конструктор.
C++
1
2
3
4
5
bilet::bilet()
{
    lastname = new char[60];
    strcpy(lastname," ");
}
Функцию ввода данных...
и в main пишу и потом программа вылетает. Как правильно выделить память под этот объект?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int main()
{
    bilet *a;
    a = new bilet();
    for (int i = 0; i < 4; i++)
    {
        a[i].define();
    }
    for (int i = 0; i < 4; i++)
    {
        a[i].display();
    }
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2016, 18:30
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Ввод данных пока строка не пустая (C++):

Пустая строка - C++
Делал задание по перегрузке функций. Перегружаю функцию sum. В одном из заданий надо ее перегрузить для подсчета значения переменных типа...

Пустая строка в функции - C++
Имеется такая функция: int setgolf (golf &amp; g) { std::cout &lt;&lt; &quot;Введите имя гольфиста: &quot;; std::cin &gt;&gt; g.fullname; if...

Проверить, пустая ли строка. (fstream) - C++
Добрый вечер, ув. форумчане. Допустим есть пример: void main() { char text; ofstream fout(&quot;test.txt&quot;, ios::app); ...

Переход на строку и пустая строка в файле - C++
Условие. Создайте два выходных файла: в один перепишите из каждой строки первые k слов, в другой - оставшиеся. Если в строке меньше, чем k...

Проверка, пустая строка или нет - C++
Здравствуйте, подскажите как реализовать проверку на пустую строку?? #include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; #include &lt;Windows.h&gt; ...

После чтения числа считывается пустая строка - C++
Нужно считать ряд строк, что-то вроде такого вида: аааа бббб сссс и я попробовал реализовать это через fgets() ...

20
POWERR
0 / 0 / 0
Регистрация: 15.07.2015
Сообщений: 27
17.11.2016, 16:43  [ТС] #16
bilet()- конструктор.define() - функция для ввода своих значений.
Программа не дает 2-ой раз ввести фамилию и после второй строчки заканчивает работать, почему?

C++
1
2
3
4
5
6
7
8
    vector<bilet> bilets;
    do
    {
        bilets.push_back(bilet());
        bilets.back().define();
    } while (!bilets.back().last());
    for (int i = 0; i < bilets.size(); i++)
        bilets[i].display();
0
MrGluck
Модератор
Эксперт CЭксперт С++
7800 / 4844 / 754
Регистрация: 29.11.2010
Сообщений: 13,211
17.11.2016, 16:52 #17
Цитата Сообщение от POWERR Посмотреть сообщение
bilet()- конструктор.define() - функция для ввода своих значений.
Всё сразу стало понятно..
Код выкладывайте
0
POWERR
0 / 0 / 0
Регистрация: 15.07.2015
Сообщений: 27
17.11.2016, 16:55  [ТС] #18
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
bilet::bilet()
{
    lastname = " ";
    number = 0;
}
void bilet::define()
{
    cout << "Vvedite familiu:";
    getline(cin, lastname);
    cout << endl << "vvedite nomer reisa";
    cin >> number;
 
}
0
MrGluck
Модератор
Эксперт CЭксперт С++
7800 / 4844 / 754
Регистрация: 29.11.2010
Сообщений: 13,211
17.11.2016, 17:04 #19
Цитата Сообщение от POWERR Посмотреть сообщение
getline(cin, lastname);
После считывания строки, в потоке остается символ '\n', который съедается при следующем считывании getline.
Используйте cin.ignore().
0
POWERR
0 / 0 / 0
Регистрация: 15.07.2015
Сообщений: 27
17.11.2016, 22:32  [ТС] #20
MrGluck, А почему если в первый раз в фамилию ввести всего один символ,то программа завершается, а если дальше вводить туда один символ, то все работает?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7800 / 4844 / 754
Регистрация: 29.11.2010
Сообщений: 13,211
18.11.2016, 00:00 #21
Цитата Сообщение от POWERR Посмотреть сообщение
А почему
Достаточно трудно ориентироваться, не видя весь код. В любом случае, ошибка скорее всего уйдет после добавления cin.ignore(), так что я не вижу смысла дальше гадать.
0
18.11.2016, 00:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2016, 00:00
Привет! Вот еще темы с ответами:

Пустая строка против строки нулевой длины - C++
Как лучше проверять std::string на пустоту: s==&quot;&quot; или s.lengt()==0?

Условие: если строка пустая - выполнить действие - C++
Здравствуйте, если можете, помогите создать такое условие: &quot;Условие: если строка пустая - выполнить действие...&quot;, на основе этого...

Построчное чтение из файла, в токором первая строка пустая - C++
Читаю построчно файл и заношу значения из строк в переменные istringstream in(ios_base::in | ios_base::out); ostream...

При вводе из файла проверить, следующая строка пустая или нет - C++
Можно ли как-нибудь проверить является ли следующая строка при вводе, например, текста из файла пустой. Допустим: &gt;Он любил кататься на...


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

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

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