Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2013, 00:02   #1
zorg-kirill
Пользователь
 
Регистрация: 11.11.2012
Сообщений: 32
Печаль Очистить поток ввода (istream)

Программа должна просто выводить введенное число, а если вместо числа будет введен символ то выдать сообщение и начать ввод заново. Но в программе если ввести 123abc (пару цифр а потом символ), то выводится число перед символами, а потом после повторения ввода выдается сообщение об ошибке (надо как-то буфер ввода очищать полностью).
Код:
Код:
#include <iostream>
#include <conio.h>
using namespace std;
void main()
{
	do 
	{
		int n;
		cout<<"\nInput a number: ";
		cin>>n;
		if (!cin)
		{
			cout<<"Wrong number!?\nPress 1 to try again:";
			cin.clear();
			cin.ignore(numeric_limits<streamsize>::max(),'\n');
			continue;
		}
		cout<<"Here is your number: "<<n<<"\nPress 1 to try again: ";
	} while (getch()=='1');	
}
Прошу ссылки на http://www.cplusplus.com и прочее не кидать, а просто скинуть рабочий код (функции и что как там используется я уже сам найду)

Последний раз редактировалось zorg-kirill; 17.02.2013 в 00:58. Причина: экономия времени и нервов
zorg-kirill вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
форматированное чтение из istream с ограничением pproger Общие вопросы C/C++ 2 19.12.2012 19:33
Поток очистить? PinkPink Win Api 2 03.10.2012 00:42
Очистить поле ввода другой программы Человек_Борща Общие вопросы Delphi 13 10.07.2011 10:07
Как очистить поля ввода на форме? Lich87 C++ Builder 2 23.10.2009 14:41
не работает IStream::Read в delphi skymaster Общие вопросы Delphi 8 29.05.2009 09:19