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

Ввод целых чисел - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.64
Nike11088
 Аватар для Nike11088
1 / 1 / 0
Регистрация: 27.06.2012
Сообщений: 39
28.07.2012, 13:03     Ввод целых чисел #1
Пользователь вводит целое число, но если введёт символ - программа вылетает. Что можно сделать, чтобы избавиться от данной проблемы?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int main()
{   
    setlocale(LC_ALL, "Rus");
 
    int number ;
    cout << "Введите целое число: ";
    cin >> number;
    cout << "Вы ввели " << number << endl;
 
    getchar();
    getchar();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Intel~lect
 Аватар для Intel~lect
135 / 124 / 2
Регистрация: 03.07.2012
Сообщений: 355
28.07.2012, 13:29     Ввод целых чисел #2
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
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int main()
{   
    setlocale(LC_ALL, "Rus");
 
    int number;
 
    cout << "Введите целое число: ";
 
    while ( !(cin >> number) )
    {
        cin.clear();
        while ( cin.get() != '\n' ) ;
 
        cout << "Ошибка. Введите целое число: ";
    }
 
    cout << "Вы ввели " << number << endl;
 
    getchar();
    getchar();
    return 0;
}
Nike11088
 Аватар для Nike11088
1 / 1 / 0
Регистрация: 27.06.2012
Сообщений: 39
28.07.2012, 13:40  [ТС]     Ввод целых чисел #3
Большое спасибо! Быстрый и качественный ответ.
Intel~lect
 Аватар для Intel~lect
135 / 124 / 2
Регистрация: 03.07.2012
Сообщений: 355
28.07.2012, 13:50     Ввод целых чисел #4
Пожалуйста. Если что непонятно в программе, то спрашивай.
Nike11088
 Аватар для Nike11088
1 / 1 / 0
Регистрация: 27.06.2012
Сообщений: 39
28.07.2012, 14:11  [ТС]     Ввод целых чисел #5
А что делает этот оператор while ( cin.get() != '\n' ) ;? Можно ли сделать, чтобы при нажатии Enter или Esc выводилось сообщение о нажатии данных клавиш?
Intel~lect
 Аватар для Intel~lect
135 / 124 / 2
Регистрация: 03.07.2012
Сообщений: 355
28.07.2012, 14:26     Ввод целых чисел #6
C++
1
while ( cin.get() != '\n' ) ;
В цикле считывается по одному символу до тех пор пока не встретиться '\n'. ('\n' тоже считывается) Например надо ввести целое число а пользователь ввел какую-нибудь строку и нажал "Enter". Эта строка осталась во входном потоке. И ее нужно удалить оттуда.
Yandex
Объявления
28.07.2012, 14:26     Ввод целых чисел
Ответ Создать тему
Опции темы

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