C ++ DO В то время как проблемы с петлей [закрыто] -- c++ пол Связанный проблема

c++ do while loop issues [closed]


-1
vote

проблема

русский
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»>
<Путь d = "M15 6.38A6.48 6.48 0 007.78. 04H-.02A6.49 6.49 0 002.05 5.6A6.31 6.31 0 002.39 5.75C.49.39.76.93.76 1.5V.24C0 1.07.89 1.9 1.92 1.92.75C1.04 0 1.92-.83 1.92-1.9v-. 2C0-.6.26-1.15.7-1.6.26-1.15.7-1.48A6.32 6.32 0 0015 6.37ZM4.03 5.85A4.49 4.49 0 018 2.02A4.48 4,48 0 015 4.36 4.3 4,3 0 01-1.72 3.44C-01-1.74-1.5 1.9- 1.5 3.08V.1H7.2V-.14C0-1.23-.6-2.34-1.3-1.32.32-1.53-3.07A4.32.32.32 0 01-1.64-3.94ZM10 18A1 1 0 000-2х7А1 1 0 100 2H3Z ">
Этот вопрос вряд ли поможет любым будущим посетителям; Он имеет отношение только к небольшому географическому району, конкретному моменту во времени или необычайно узкой ситуации, которая обычно не применима к всемирной аудитории Интернета. Для того, чтобы помочь сделать этот вопрос более широко применимым, Посетите справочный центр .
Закрыто 7 лет назад .

У меня есть следующее, если утверждение убедитесь, что вторые входы действительны. Однако, если кто-то вводит неверный день дважды, он просто сохраняет это значение. Как мне убедиться, что дата действительна, прежде чем двигаться дальше? А пока цикла?

 <код> cin>>date.day;     if((date.day>31) || (date.month<1))       {           cout <<"Please input a valid day."<< endl;           date.day = 0;           cin>>date.day;       }   
Английский оригинал

I have the following if statement to make sure that day inputs are valid. However, if someone inputs an invalid day twice it just keeps that value. How do I make sure that the date is valid before moving on? A while loop?

cin>>date.day;     if((date.day>31) || (date.month<1))       {           cout <<"Please input a valid day."<< endl;           date.day = 0;           cin>>date.day;       } 
</div
  
   
   

Список ответов

1
 
vote

Использование <код> do <Код> while Структура:

 <код> do {   cout <<"Please input a valid day."<< endl;   date.day = 0;   cin>>date.day;   if (cin.fail()) {     cin.clear();     cin.ignore(1024, ' ');   } } while(cin.fail() || date.day > 31 || date.day < 1);   
 

Using a do while structure:

do {   cout <<"Please input a valid day."<< endl;   date.day = 0;   cin>>date.day;   if (cin.fail()) {     cin.clear();     cin.ignore(1024, ' ');   } } while(cin.fail() || date.day > 31 || date.day < 1); 
</div
 
 
         
         
0
 
vote

Что вы ищете, это <код> while петлей:

 <код> cin>>date.day; while((date.day>31) || (date.month<1)) {     cout <<"Please input a valid day."<< endl;     date.day = 0;     cin>>date.day; }   
 

What you are looking for is a while loop:

cin>>date.day; while((date.day>31) || (date.month<1)) {     cout <<"Please input a valid day."<< endl;     date.day = 0;     cin>>date.day; } 
</div
 
 

Связанный проблема

1  Шаблон статических классов через динамические связанные библиотеки  ( Template static classes across dynamic linked libraries ) 
У меня есть классовый класс со статическим значением, как это: <код> template <class TYPE> class A{ static TYPE value; }; в коде dll I назначаю ст...

0  Правильный способ использования вариационного шаблона функции вызова со строковыми аргументами C ++  ( Proper way of using variadic template function call with string arguments c ) 
Здравствуйте, что не то, что я здесь делаю, используя вариадические шаблоны через строку? Как правильно использовать его для достижения заданий ниже? <код> ...

-1  Неожиданный идентификатор ошибки - не уверен, почему (C ++)  ( Unexpected error id not sure why c ) 
IM Реализация программы C ++, по соображениям проекта оно должно быть включено в один файл, поэтому я не могу поставить то, что вы обычно в отдельном файле за...

-4  Петля, которая компилирует и работает в INT основной функции не скомпилируется при введении в отдельную функцию [закрыто]  ( Loop that compiles and runs in int main function wont compile when put into a se ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> закрыто. Этот вопрос нуждается в Детали отладки . В настоящее вр...

2  Создание хеша для данных больше, чем память (без зарядки)  ( Generating a hash for data larger than memory without getting arrested ) 
Добрый послеобеденный переполнец! ;) Что я хочу сделать: Я заинтересован в проверке передаваемой целостности файлов. Как я подошел к нему: Я рассм...

5  Что такое "для (x: y)"?  ( What is for x y ) 
Итак, я оглянулся на межпубки о нитках, и я пришел в блог / учебную вещь о нитках, но то, что меня смущено, была эта линия, которую он использовал <код> for...

0  Ошибка: аргумент типа "void (opca_hello ::) ()" не соответствует "void * (*) (void *)"  ( Error argument of type void opca hello does not match void void ) 
Я написал очень простой код для резьбы. Поскольку я очень новый для этого, я понятия не имею об ошибке. <код> class opca_hello { public: void hello(); } v...

6  Singleton & Multi-Threading  ( Singleton multi threading ) 
У меня есть следующий класс <код> class Singleton { private: static Singleton *p_inst; Singleton(); public: static Singleton * instance()...

57  Как сделать макрос C ++ вести себя как функция?  ( How do i make a c macro behave like a function ) 
Допустим, по какой-то причине вам нужно написать макрос: <код> MACRO(X,Y) . (давайте предположим, что есть веская причина, по которой вы не можете использова...

0  Как настроить VS2008 для эффективного развития C ++  ( How to setup vs2008 for efficient c development ) 
Обычно I Программируйте в C #, но были вынуждены выполнять работу в C ++. Похоже, что интеграция с Visual Studio (2008) действительно плохо по сравнению с C #...

501  Как использовать постоянную PI в C ++  ( How to use the pi constant in c ) 
Я хочу использовать постоянные и тригонометрические функции PI в некоторой программе C ++. Я получаю тригонометрические функции с помощью <код> include <math....

0  Libusb_Bulk_Transfer добавляет CRC?  ( Does libusb bulk transfer add crc ) 
Я пишу программу пользовательского интерфейса для устройства USB в C ++, используя Visual Studio 2019. Я использую библиотеку Libusb. Я хочу сделать объемную ...

-1  Бросить исключение, когда неправильный тип введен в  ( Throw exception when a wrong type is keyed in ) 
Я должен написать программу C ++, в которой функция состоит в том, чтобы прочитать два номера double Тип чисел из клавиатуры и добавить <код> try BLOCK, чт...

-1  Приложение C ++ в массивах с использованием арифметического указателя  ( C app on arrays using pointer arithmetic ) 
Вопрос: как я могу генерировать случайное животное из массива, используя эту функцию? <код> const int MAX =12; //12 animals const int MAXSTR = 10; ...

1  Почему 64-битное целое расширение C ++ называется «долгим долгом»?  ( Why is the 64bit integer extension of c called long long ) 
В отличие от других типов: «int», "логический", "двойной" и т. Д. И даже таможенные классы, есть только одно слово. Однако только одно слово для их типа тольк...

Связанный проблема

1  Шаблон статических классов через динамические связанные библиотеки 
0  Правильный способ использования вариационного шаблона функции вызова со строковыми аргументами C ++ 
-1  Неожиданный идентификатор ошибки - не уверен, почему (C ++) 
-4  Петля, которая компилирует и работает в INT основной функции не скомпилируется при введении в отдельную функцию [закрыто] 
2  Создание хеша для данных больше, чем память (без зарядки) 
5  Что такое "для (x: y)"? 
0  Ошибка: аргумент типа "void (opca_hello ::) ()" не соответствует "void * (*) (void *)" 
6  Singleton & Multi-Threading 
57  Как сделать макрос C ++ вести себя как функция? 
0  Как настроить VS2008 для эффективного развития C ++ 
501  Как использовать постоянную PI в C ++ 
0  Libusb_Bulk_Transfer добавляет CRC? 
-1  Бросить исключение, когда неправильный тип введен в 
-1  Приложение C ++ в массивах с использованием арифметического указателя 
1  Почему 64-битное целое расширение C ++ называется «долгим долгом»?