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

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

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

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

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

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

Код:
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, 01:50   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

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

теперь пишет ошибку и сразу же переходит к следующему
Код:
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, 02:12   #4
Evgeny_L
Пользователь
 
Регистрация: 27.10.2018
Сообщений: 31
По умолчанию

проблема решена убиранием цикла фор)
Код:
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 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ Ошибка при вводе Кристина1998 Помощь студентам 2 19.03.2017 18:48
Дублируется строка при сортировке матрицы и не может вывести минимальный элемент строки schoolboy99 Помощь студентам 10 10.03.2015 11: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 22:22