Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.58/40: Рейтинг темы: голосов - 40, средняя оценка - 4.58
2 / 2 / 0
Регистрация: 27.06.2012
Сообщений: 40
1

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

28.07.2012, 13:03. Просмотров 7691. Ответов 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;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.07.2012, 13:03
Ответы с готовыми решениями:

Ввод одномерного массива из N целых чисел
Задание: Моя реализация: long n1; m1:cout&lt;&lt;&quot;Vvedite n:&quot;&lt;&lt;endl; cin&gt;&gt;n1; if(n1&lt;1 ||...

Ввод с клавиатуры массива из 10 целых чисел
Написать программу, которая вводит с клавиатуры массив из 10 целых чисел, находит среди элементов...

Ввод с клавиатуры последовательность целых чисел заканчивающихся 0
Доброго времени суток,задача:Составить программу которая 1)Вводит с клавиатуры последовательность...

Ввод двузначных целых чисел до первого нечетного
Задача: ввести с клавиатуры двузначные целые числа до первого нечетного. подсчитать кол-во...

5
137 / 126 / 14
Регистрация: 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;
}
2
2 / 2 / 0
Регистрация: 27.06.2012
Сообщений: 40
28.07.2012, 13:40  [ТС] 3
Большое спасибо! Быстрый и качественный ответ.
0
137 / 126 / 14
Регистрация: 03.07.2012
Сообщений: 355
28.07.2012, 13:50 4
Пожалуйста. Если что непонятно в программе, то спрашивай.
0
2 / 2 / 0
Регистрация: 27.06.2012
Сообщений: 40
28.07.2012, 14:11  [ТС] 5
А что делает этот оператор while ( cin.get() != '\n' ) ;? Можно ли сделать, чтобы при нажатии Enter или Esc выводилось сообщение о нажатии данных клавиш?
0
137 / 126 / 14
Регистрация: 03.07.2012
Сообщений: 355
28.07.2012, 14:26 6
C++
1
while ( cin.get() != '\n' ) ;
В цикле считывается по одному символу до тех пор пока не встретиться '\n'. ('\n' тоже считывается) Например надо ввести целое число а пользователь ввел какую-нибудь строку и нажал "Enter". Эта строка осталась во входном потоке. И ее нужно удалить оттуда.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.07.2012, 14:26

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Фильтр на ввод только целых неотрицательных чисел
Как создать функцию, позволяющую вводить только целые неотрицательные числа в с++? Как она будет...

как осуществить ввод только нечетных целых чисел?
вот в этой программе необходимо ввести n, которое нечетное целое # include &quot;iostream&quot; # include...

Массивы. Организовать ввод матрицы размера mxn из целых чисел
Составить программу, в которой 1) организовать ввод матрицы размера mxn из целых чисел;...

Сформировать одномерный массив целых чисел, используя ввод данных с клавиатуры
Найти в массиве наибольшее число подряд идущих одинаковых элементов (например...


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

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

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