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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.11.2018, 23:54   #1
Evgeny_L
Пользователь
 
Регистрация: 27.10.2018
Сообщений: 31
По умолчанию Запрет на ввод отрицательного числа

Как здесь сделать запрет на ввод отрицательного числа потому что у меня что-то не получается......
Код:
while (true)
		{
			cout << "data: ";
			cin >> s[n].data;

			if (!cin)
			{
				cout << "ne verno! povtorite vvod\n";
				cin.clear();
				while (cin.get() != '\n');
				Sleep(1500);
				system("cls");
			}
			else break;
		}
Evgeny_L вне форума Ответить с цитированием
Старый 12.11.2018, 00:07   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Я бы посоветовал вообще переписать код как-то так:
Код:
bool k;
do {
	cout << "x = ";
	cin >> x;
	k = (x < 0);
	if (k) {
		// Повторите ввод
	};

} while (k)
Вадим Мошев вне форума Ответить с цитированием
Старый 12.11.2018, 00:10   #3
Evgeny_L
Пользователь
 
Регистрация: 27.10.2018
Сообщений: 31
По умолчанию

Если переписывать, то переписывать весь код на 600 строк? :D может как-то есть идеи как исправить
Evgeny_L вне форума Ответить с цитированием
Старый 12.11.2018, 00:12   #4
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

А в чём проблема исправить только ввод чисел?
Вадим Мошев вне форума Ответить с цитированием
Старый 12.11.2018, 00:18   #5
Evgeny_L
Пользователь
 
Регистрация: 27.10.2018
Сообщений: 31
По умолчанию

Переписал, но теперь запрет на ввод букв не работает
Код:
			do
			{
				cout << "data: ";
				cin >> s[n].data;
				k = (s[n].data < 0);
				if (k)
				{
					cout << "ne verno! povtorite vvod\n";
					cin.clear();
					while (cin.get() != '\n');
					Sleep(1500);
					system("cls");
				}
			
			} while (k);
Evgeny_L вне форума Ответить с цитированием
Старый 12.11.2018, 00:41   #6
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Перепишите как-то так:
Код:
do {
	cout << "<переменная, например p> = ";
	cin >> p;
	k = (p содержит буквы);
	if (k) {
		// Повторите ввод
	};

} while (k)
Подробнее помочь не смогу - C++ не владею.
Вадим Мошев вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
StringGrid нахождение min отрицательного числа Plex3 Общие вопросы Delphi 2 24.11.2013 15:15
перевод отрицательного десятичного числа в восьмеричную tani455 Мультимедиа в Delphi 5 10.10.2013 15:45
Корень из отрицательного числа Baizer Помощь студентам 1 12.12.2011 14:34
Кубический корень от отрицательного числа Vito89 Помощь студентам 9 29.09.2009 14:40
формат отрицательного числа zetrix Microsoft Office Excel 0 30.10.2006 18:54