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

Проверка на ввод отрицательного значения - C++

Восстановить пароль Регистрация
 
iNsomNia7
2 / 2 / 0
Регистрация: 19.11.2012
Сообщений: 32
27.03.2013, 03:49     Проверка на ввод отрицательного значения #1
Задача заключается в том, чтобы время в формате X часов Y минут Z секунд перевести в N секунд с помощью функции hms_to_secs;


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//5.cpp
#include <iostream>
#include <conio.h>
using namespace std;
 unsigned long hms_to_secs(unsigned int hours, unsigned int min, unsigned int secs);
 
 void main()
 {
     unsigned int hours, min, secs;
     char dir = 'a';
     do
     {
         do
         {
             cout << "\nEnter number of hours: ";
             cin >> hours;
         }while(hours < 0);
         do
         {
             cout << "\nEnter number of mins: ";
             cin >> min;
         }while(min < 0);
         do
         {
             cout << "\nEnter number of secs: ";
             cin >> secs;
         }while(secs < 0);
 
         cout << hours << " hours " << min << " mins " << secs << " secs " << " is equal to " << hms_to_secs(hours, min, secs) << " secs";
 
         do
         {
             cout << "\nContinue?(y/n)";
             dir = getche();
         }while(dir != 'y' && dir != 'n');
 
     }while(dir != 'n'); 
 
     cout << endl;
     system("pause");
 
 }
 
 //-------------------------------------------------------------------------------------
 unsigned long hms_to_secs(unsigned int hours, unsigned int mins, unsigned int secs)
 {
     return (hours * 3600 + mins * 60 + secs);
 }
Проблема заключается в том, что при вводе отрицательного значения, программа должна вновь запрашивать значение, а она просто работает дальше..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2013, 03:49     Проверка на ввод отрицательного значения
Посмотрите здесь:

Определить порядковые номера и значения первого положительного и п оследнего отрицательного элементов массива Z. C++
C++ Напишите программу, которая выдает запрос на ввод значения часов и значения минут.
Проверка на ввод C++
Сделать так, чтобы при вводе отрицательного значения программа выводила errror C++
Ввод и вывод массива целых чисел Вычислить сумму модулей элементов массива,располроженных после первого отрицательного C++
C++ Ввод и вывод массива целых чисел Вычислить сумму модулей элементов массива,располроженных после первого отрицательного
Ввод чисел до первого отрицательного C++
C++ Присвоение отрицательного значения беззнаковому типу

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
UnsKneD
алкокодер
 Аватар для UnsKneD
153 / 149 / 11
Регистрация: 27.12.2012
Сообщений: 548
27.03.2013, 04:19     Проверка на ввод отрицательного значения #2
Цитата Сообщение от iNsomNia7 Посмотреть сообщение
unsigned int hours, min, secs;
Используйте просто int
Ded_Vasilij
 Аватар для Ded_Vasilij
229 / 211 / 15
Регистрация: 01.09.2012
Сообщений: 2,103
27.03.2013, 08:04     Проверка на ввод отрицательного значения #3
можно например использовать такую процедуру
i
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
nt Readint()
{
    unsigned int a;
    cin >> a;
    if (!cin)
    {
        cin.clear();
        while (cin.peek() !='\n')
            cin.ignore();
        cin.ignore();
    }
    return a;
}
пишем
C++
1
int x = Readint();
и запрос на ввод будет продолжаться до тех пор, пока не будет введено положительное число, символы тоже ловит
Yandex
Объявления
27.03.2013, 08:04     Проверка на ввод отрицательного значения
Ответ Создать тему
Опции темы

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