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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2019, 12:59   #1
valerij01
Новичок
Джуниор
 
Регистрация: 20.10.2019
Сообщений: 1
По умолчанию помогите организовать цикл

нужно считать число , если есть не цифры попросить ввести заново . Дошёл до этого (осуществляет то , что нужно), но не могу организовать цикл , который будет спрашивать число пока его не получит.
Код:
#include<iostream>
using namespace std;
int main() {
	int a;
	char b;
             if ( cin.good())
		{
			cin >> a;
			b = cin.get();
			if ((b<'0' || b>'9') && b != '\n')
			{
				cout << "error, write again ";
			}
			else
			{
				cout << a << " " << b;
			}
		}
	     else {
			cout << "error, write again";

		}
		
	return 0;
}
_____
Код программы нужно выделять (форматировать) тегами [CODE] [/CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 20.10.2019 в 13:21.
valerij01 вне форума Ответить с цитированием
Старый 20.10.2019, 19:35   #2
Desc
Участник клуба
 
Аватар для Desc
 
Регистрация: 21.11.2007
Сообщений: 1,063
По умолчанию

Такой вариант получился:
Код:
#include <conio.h>
#include <iostream>

int main()
{
	int e;
	char a;

	do
	{
          int k, b;
	  e = 0;
	  std::cout << "Exit to the proram (y/n)? " << std::endl;
	  k = _getch();
	  if (k == 'y' || k == 'Y' || k == 27) { e = 1;  exit(0); }
	  std::cout << "Enter value 'a' and Press Enter: " << std::endl;
	  std::cin >> a;
	  std::cout << "Enter value 'b' and Press Enter: " << std::endl;
	  std::cin >> b;
	  if (b >= '0' || b <= '9')
	{
	   std::cout << a << " " << b << std::endl;
	   if (std::cin.fail())
	{
	  std::cin.clear();
	  std::cin.ignore(32767, '\n');
	  b = -1;
	  std::cout << "Error entering value 'b'" << std::endl;
	  continue;
	}
        }
        } while (e != 1);
       return 0;
}
Если необходимо так же проверять и ввод a, тогда объявляем эту переменную как Int и добавляем в код ещё одно условие:
Код:
{
	std::cin.clear();
	std::cin.ignore(32767, '\n');
	a = -1;
	std::cout << "Error entering value 'a'" << std::endl;
	continue;
}
I am not a wizard, I am just learning.

Последний раз редактировалось Desc; 20.10.2019 в 19:40.
Desc вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как организовать цикл ? Nikmichsch Общие вопросы Delphi 21 06.02.2011 19:32
как организовать цикл KAMKAM Microsoft Office Excel 29 05.07.2010 22:20
как организовать цикл? Aqil_f Microsoft Office Excel 3 03.06.2009 10:13
Помогите, пожалуйста, организовать цикл Axel1981 Помощь студентам 2 17.10.2008 09:22