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

Не получается осуществить ввод в конструкторе - C++

Восстановить пароль Регистрация
 
-SNap-
0 / 0 / 0
Регистрация: 10.03.2013
Сообщений: 8
24.03.2013, 14:55     Не получается осуществить ввод в конструкторе #1
По какой-то неведомой мне причине пропускает ввод "ФИО получателя" . Прошу помощи.

Вообще нужно выполнить вот это задание:
Описать класс с именем ORDER, содержащий следующие закрытые переменные – члены класса (поля):
• расчетный счет плательщика;
• ФИО получателя;
• перечисляемая сумма в руб.
Написать программу, выполняющую ввод и вывод полей объекта O класса ORDER.


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
#include <iostream>
 
using namespace std;
 
class order {  
    public:
           order(); 
           ~order();    
    private:
           int payer;
           char fio[255];
           int sum;
}; 
 
order::order() {
    cout<< "Счет плательщика: ";
    cin>> payer;
    cout<< "ФИО получателя: ";
    cin.getline(fio, sizeof(fio));
    cout<< "Перечисляемая сумма в руб.: ";
    cin>> sum;
} 
 
order::~order() {
    cout<< "Счет плательщика: "<< payer<< endl;
    cout<< "ФИО получателя: "<< fio<< endl;
    cout<< "Перечисляемая сумма в руб.: "<< sum<< endl;
}
 
 
int main()
{
    setlocale(LC_ALL, "Russian");
    order object; 
    system("PAUSE");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2013, 14:55     Не получается осуществить ввод в конструкторе
Посмотрите здесь:

C++ Написать программу, которая позволяет осуществить ввод 2-х матриц одинакового размера
C++ Написать программу, которая позволяет осуществить ввод матрицы произвольного размера
Как осуществить ввод букв и цифр вручную в окне написанной программы C++
Как осуществить случайный ввод элементов матрицы, чтоб не вводить с клавиатуры C++
как осуществить ввод только нечетных целых чисел? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Wizard_
1 / 1 / 0
Регистрация: 24.03.2013
Сообщений: 6
24.03.2013, 15:03     Не получается осуществить ввод в конструкторе #2
Замени
C++
1
cin.getline(fio, sizeof(fio));
на
C++
1
cin>>fio;
Hellrider_
 Аватар для Hellrider_
42 / 42 / 1
Регистрация: 12.03.2013
Сообщений: 112
24.03.2013, 15:32     Не получается осуществить ввод в конструкторе #3
Цитата Сообщение от Wizard_ Посмотреть сообщение
Замени
C++
1
cin.getline(fio, sizeof(fio));
на
C++
1
cin>>fio;
Через cin >> будет считываться только до первого пробела.

Я бы сделал так
C++
1
cin.get(fio, 255);
-SNap-
0 / 0 / 0
Регистрация: 10.03.2013
Сообщений: 8
24.03.2013, 15:41  [ТС]     Не получается осуществить ввод в конструкторе #4
Цитата Сообщение от Hellrider_ Посмотреть сообщение
Через cin >> будет считываться только до первого пробела.

Я бы сделал так
C++
1
cin.get(fio, 255);
Тот же эффект что и при getline. Все также пропускает ввод.
Hellrider_
 Аватар для Hellrider_
42 / 42 / 1
Регистрация: 12.03.2013
Сообщений: 112
24.03.2013, 16:10     Не получается осуществить ввод в конструкторе #5
Должно работать
C++
1
2
3
4
5
6
7
8
9
order::order() {
    cout<< "Счет плательщика: ";
    cin>> payer;
    cout<< "ФИО получателя: ";
    cin.sync();
    cin.getline(fio, sizeof(fio));
    cout<< "Перечисляемая сумма в руб.: ";
    cin>> sum;
}
-SNap-
0 / 0 / 0
Регистрация: 10.03.2013
Сообщений: 8
24.03.2013, 16:47  [ТС]     Не получается осуществить ввод в конструкторе #6
Спасибо, работает
Yandex
Объявления
24.03.2013, 16:47     Не получается осуществить ввод в конструкторе
Ответ Создать тему
Опции темы

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