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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.64
Nike11088
1 / 1 / 0
Регистрация: 27.06.2012
Сообщений: 39
#1

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

28.07.2012, 13:03. Просмотров 1995. Ответов 5
Метки нет (Все метки)

Пользователь вводит целое число, но если введёт символ - программа вылетает. Что можно сделать, чтобы избавиться от данной проблемы?
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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.07.2012, 13:03     Ввод целых чисел
Посмотрите здесь:

C++ Ввод двузначных целых чисел до первого нечетного
Сумма первых n целых положительных четных целых чисел C++
как осуществить ввод только нечетных целых чисел? C++
Ввод с клавиатуры массива из 10 целых чисел C++
C++ Организовать ввод целых четных значений в одномерный массив с контролем вводимых чисел
Массивы. Организовать ввод матрицы размера mxn из целых чисел C++
C++ Сумма всех целых чисел от целых чисел от A до B включительно
C++ Составить программу, которая вызывает функцию, а также осуществляет ввод матрицы целых чисел
Из множества целых чисел получить множество чисел, являющихся квадратами нечетных чисел C++
C++ Ввод одномерного массива из N целых чисел
Сформировать одномерный массив целых чисел, используя ввод данных с клавиатуры C++
Фильтр на ввод только целых неотрицательных чисел C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
1 / 1 / 0
Регистрация: 27.06.2012
Сообщений: 39
28.07.2012, 13:40  [ТС]     Ввод целых чисел #3
Большое спасибо! Быстрый и качественный ответ.
Intel~lect
135 / 124 / 2
Регистрация: 03.07.2012
Сообщений: 355
28.07.2012, 13:50     Ввод целых чисел #4
Пожалуйста. Если что непонятно в программе, то спрашивай.
Nike11088
1 / 1 / 0
Регистрация: 27.06.2012
Сообщений: 39
28.07.2012, 14:11  [ТС]     Ввод целых чисел #5
А что делает этот оператор while ( cin.get() != '\n' ) ;? Можно ли сделать, чтобы при нажатии Enter или Esc выводилось сообщение о нажатии данных клавиш?
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     Ввод целых чисел
Ответ Создать тему
Опции темы

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