Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 11.11.2018, 02:30   #1
Evgeny_L
Пользователь
 
Регистрация: 28.10.2018
Сообщений: 10
Репутация: 10
По умолчанию Дублируется количество ошибок при неверном вводе

Код:

int add(int n)
{
	HANDLE hOUTPUT = GetStdHandle(STD_OUTPUT_HANDLE);

	SetConsoleTextAttribute(hOUTPUT, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
	char ch;
	ch = '\0';
	do {
		
			cout << "mestnost': ";
			cin >> s[n].local;
			for (int i = 0; i < s[n].local.length(); i++)
			{
				if (!(s[n].local[i]>= 'A' &&s[n].local[i]<= 'Z' || s[n].local[i]>= 'a' && s[n].local[i]<= 'z'))
				{
					cout << "ne verno! povtorite vvod\n";
				}
			}

Evgeny_L вне форума   Ответить с цитированием
Старый 11.11.2018, 02:50   #2
BDA
Модератор
Заслуженный модератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Адрес: RF Moscow
Сообщений: 5,383
Репутация: 2468

icq: 438888048
По умолчанию

Может быть после последнего cout добавить break?
__________________
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума   Ответить с цитированием
Старый 11.11.2018, 03:08   #3
Evgeny_L
Пользователь
 
Регистрация: 28.10.2018
Сообщений: 10
Репутация: 10
По умолчанию

теперь пишет ошибку и сразу же переходит к следующему
Код:

cout << "mestnost': ";
			cin >> s[n].local;
			for (int i = 0; i < s[n].local.length(); i++)
			{
				if (!(s[n].local[i] >= 'A' &&s[n].local[i] <= 'Z' || s[n].local[i] >= 'a' && s[n].local[i] <= 'z'))
				{
					cout << "ne verno! povtorite vvod\n";
					break;
			
				}
			}

Evgeny_L вне форума   Ответить с цитированием
Старый 11.11.2018, 03:12   #4
Evgeny_L
Пользователь
 
Регистрация: 28.10.2018
Сообщений: 10
Репутация: 10
По умолчанию

проблема решена убиранием цикла фор)
Код:

while (true)
		{
		///	for (int i = 0; i < s[n].local.length(); i++) ///
			int i = 0;
			cout << "mestnost': ";
			cin >> s[n].local;
				if (!(s[n].local[i] >= 'A' &&s[n].local[i] <= 'Z' || s[n].local[i] >= 'a' && s[n].local[i] <= 'z'))
				{
					cout << "ne verno! povtorite vvod\n";
					cin.clear();
					while (cin.get() != '\n');
				}
				else break;
		}

Evgeny_L вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ Ошибка при вводе Кристина1998 Помощь студентам 2 19.03.2017 19:48
Дублируется строка при сортировке матрицы и не может вывести минимальный элемент строки schoolboy99 Помощь студентам 10 10.03.2015 12:50
ошибка при некорректном вводе Armat C++ Builder 3 12.04.2013 14:26
Пробелы при вводе KingWaR56 БД в Delphi 6 11.12.2011 09:58
Проблемка при вводе чисел at10 Microsoft Office Excel 4 02.12.2007 23:22


11:41.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru