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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.71
snyppimylt
7 / 7 / 1
Регистрация: 18.12.2011
Сообщений: 400
#1

Проверка на ввод символа - C++

23.09.2012, 19:02. Просмотров 3470. Ответов 2
Метки нет (Все метки)

Предположим вместо числа был введен символ, тогда после ввода символа пропускается вторая строчка cin>>b; и далее заного перезапускается начальная функция main(); и так она будет постоянно, почему так?

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
int main(){
int a,b;
cout<<"Ввод числа" \\ а если пользователь ввел символ? то как поступить? 
cin>>a; 
cin>>b; \\ или надо ввести 2 числа в разные переменные.
 
main();
 
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2012, 19:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проверка на ввод символа (C++):

Проверка на ввод символа - C++
При вводе какого либо символа программа уходит в прострацию надо что бы программ распазновала что это символ и выводила error int main() ...

Проверка на ввод символа - C++
Пользователь вводит несколько строк (имя, фамилия и тд). Не могу сообразить как реализовать проверку, на то что бы вводимые символы не...

Ввод символа - C++
char b; int c; puts(&quot;Int&quot;); scanf(&quot;%d&quot;, &amp;c); puts(&quot;Char&quot;); b = getchar(); putchar(b); Когда ввел число, система не дает...

Пропускает ввод символа - C++
Начал изучать с++ и в процессе выполнения наткнулся на проблему. В процессе выполнения программа нормально запрашивает и принимает ...

Ввод специального символа. - C++
Всем привет. У меня вопрос про символ -  Decimal 26 HEX 1A Подскажите как мне его записать в файл.

Проверка символа на повторяемость. - C++
Всем здравствуйте! При разработке программы столкнулся с проблемкой. Задача: На входе имеется массив символов, например,...

2
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.09.2012, 20:20 #2
После cin >> поставьте эту конструкцию:
C++
1
2
cin.clear();
while (cin.get() != '\n');
Добавлено через 8 минут
Цитата Сообщение от snyppimylt Посмотреть сообщение
почему так?
Если первым идёт не то, что cin >> ожидает (например символ буквы, когда ожидается число), то cin устанавливает флаг ошибки, и дальнейшая работа с потоком ввода становится невозможной. То что не ввелось, остаётся в потоке ввода. cin.clear(); сбрасывает флаг ошибки, а cin.get(), в цикле while(), будет извлекать символы из потока ввода, пока не встретит символ новой строки - '\n' (попадает в поток при нажатии Enter), извлечёт и его. Таким образом, поток ввода очистится и с ним снова можно будет работать.

Добавлено через 13 минут
Обыгрывать такие ситуации можно, например, так:
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 <windows.h>
#include <cstdlib>
#include <iostream>
using namespace std;
 
int main()
{ 
 SetConsoleCP(1251);
 SetConsoleOutputCP(1251);
 
int a;
cout << "Введите число "; 
while (!(cin >> a))
{
    cin.clear();
    while (cin.get() != '\n');
    cout << "Неверный ввод. Повторите." << endl;
    cout <<"Введите число "; 
} 
cout << a << endl;
 
system("pause");
return 0;
}
2
snyppimylt
7 / 7 / 1
Регистрация: 18.12.2011
Сообщений: 400
23.09.2012, 22:22  [ТС] #3
alsav22, огромное спасибо
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.09.2012, 22:22
Привет! Вот еще темы с ответами:

Проверка вводимого символа - C++
Привет.Помогите,надо сделать так ,чтобы в консольной программе при вводе цифр,вместо букв,выдавало ошибку

Как отследить ввод символа в программу - C++
Программа расчета площади поверхности и объема сферы,требуется ввод радиуса.что делать,если пользователь введет букву или ,например,...

Ввод символа в переменную типа INT - C++
Доброго времени суток. Подскажите самый эффективный способ борьбы с неверным вводом данных пользователем. А именно когда пользователя...

Вопрос по ввод-вывод одного символа - C++
//программа работает с английскими символами, с русскими - возникают проблемы #include&lt;stdio.h&gt; #include&lt;iostream&gt; void main() { ...


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

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

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