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

Пропускает ввод символа - C++

Восстановить пароль Регистрация
 
Gumba
Сообщений: n/a
05.11.2012, 03:11     Пропускает ввод символа #1
Начал изучать с++ и в процессе выполнения наткнулся на проблему. В процессе выполнения программа нормально запрашивает и принимает первых два значения, пропускает третье значение (grade) и переходит к последнему в чём ошибка помогите разобраться.
Кликните здесь для просмотра всего текста
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
#include <iostream>
struct infatable
    {
        std::string fs_name;
        std::string ls_name;
        char grade[1];
        int age;
    };
int main()
{
    using namespace std;
    infatable * prog = new infatable;
    cout << "What is you ferst name? ______\b\b\b\b\b\b";
        cin >> prog->fs_name;
    cout << "What is your last name? ______\b\b\b\b\b\b";
        cin >> prog->ls_name;
    cout << "What latter grade do you desert? _\b";
        cin.get(prog->grade, 1);
    cout << "What is  you age? __\b\b";
        cin >> prog->age;
   cout << endl << "Your name " << prog->ls_name << " " << prog->fs_name << endl << "Your age " << prog->age << endl << "Your grade \a" << prog->grade;
   delete prog;
   return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2012, 03:11     Пропускает ввод символа
Посмотрите здесь:

C++ Ввод специального символа.
C++ Программа пропускает ввод первой строки
Проверка на ввод символа C++
Копирование строки. При вводе пробела программа пропускает последующий ввод данных C++
Функция getline пропускает ввод строки C++
C++ Ввод символа
C++ Программа пропускает ввод данных несмотря на fflush
C++ Пропускает ввод данных после for

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.11.2012, 04:23     Пропускает ввод символа #2
C++
1
2
cin >> prog->ls_name;
cin.get();
После cin>> в потоке ввода остаётся символ новой строки 'n\'(попадает туда при нажатии Enter). cin.get(prog->grade, 1) считывает его первым, и код идёт дальше. Чтобы этого не было, нужно извлечь '\n' из потока (что и делает cin.get()).
Gumba
Сообщений: n/a
05.11.2012, 23:48     Пропускает ввод символа #3
Спасибо
Yandex
Объявления
05.11.2012, 23:48     Пропускает ввод символа
Ответ Создать тему
Опции темы

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