Форум программистов, компьютерный форум CyberForum.ru

do while - C++

Восстановить пароль Регистрация
 
Geo88
 Аватар для Geo88
0 / 0 / 0
Регистрация: 16.09.2012
Сообщений: 9
16.09.2012, 18:59     do while #1
Помогите , пожалуйста .
Как сделать проверку на символы ?
А то программа начитает зацикливаться , например

C++ (Qt)
1
2
3
4
5
6
    do 
     {
       cout <<"height of the fall  H = ";
       cin >> H;
     }
    while (H <= 0 || H > 10000);
Что нужно тут дописать ?



И еще вопрос по этой же теме

C++ (Qt)
1
2
3
4
5
6
    do 
     {
              "Do You want continue ? Y/N = "
               cin >> S;
     }
    while (???);
и что тут нужно сделать что при Y программа начала свой повтор , а при N закончила это цикл
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
yekka
384 / 148 / 8
Регистрация: 12.05.2011
Сообщений: 450
16.09.2012, 19:04     do while #2
например, так
C++
1
2
3
4
5
do {
  cout << "Do You want continue ? Y/N = ";
  cin >> S; 
  if (S != 'Y') break;
} while (true);
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
16.09.2012, 19:09     do while #3
в первом случае так
C++
1
2
3
4
5
6
7
do
    {
        std::cout << "height = ";
        (std::cin >> height).clear();
        std::cin.sync();
    }
    while(height <= 0 || height > 1000);
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
16.09.2012, 21:01     do while #4
igorrr37, можете объяснить, что же значат cin.clear() и cin.sync()?

Не по теме:

не посылая меня на cplusplus.com

Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
16.09.2012, 21:35     do while #5
Цитата Сообщение от Dani Посмотреть сообщение
не посылая меня на cplusplus.com
Да, конечно. Посмотри на cppreference.com :-)
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
16.09.2012, 21:46     do while #6
При вводе текста в консоль и нажатии ентер данные перемещаются из буфера консоли(он опустошается) в буфер потока cin. При последующем вызове sync() очищает буфер cin и пробует загрузить новые данные с консоли, а т.к. последний пуст, то и cin'овский остаётся пустым. Когда флаг goodbit сброшен, cin'овские ф-ции не работают, в т.ч. и sync(), поэтому сперва вызываем clear()
Yandex
Объявления
16.09.2012, 21:46     do while
Ответ Создать тему
Опции темы

Текущее время: 07:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru