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

В результате ввода переменной int присваивается символ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ рекурсивный перебор системы счисления http://www.cyberforum.ru/cpp-beginners/thread816928.html
Задача: вводятся два числа от 1 до 6 (n и m) n - количество цифр m - порядок системы счисления нужно вывести все варианты в столбец. например Input 2 3 Output 1 1
C++ Возвратить object в экспортируемой функции dll Добрый день. есть функция в dll, которая использует сторонние tlb (они подключены в h): extern "C" _declspec(dllexport) int Material() //чем заменить int { IMaterial** Materials = new IMaterial*(); //Абстрактный класс, верхний уровень IMaterial* Material = Materials;//Получение } есть код на NET, в котором будет использоваться этот возврат в виде object = Material() http://www.cyberforum.ru/cpp-beginners/thread816919.html
C++ Нужно написать программу преобразующую данные в машинный вид
Нужно написать маленькую программку которая преобразует разные типы данных в машинный код (двоичной системе счисления)..... Тоесть с клавиатуры вводим слово оно преобразуется в вид который воспринимается компьютером, то есть в двоичной системе счисления....
дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа. Строка должна вводиться с клавиатуры. C++
Будьте добры,помогите с решением задачи: дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа. Строка должна вводиться с клавиатуры.
C++ Программа выдающая число с обратным порядком цифр http://www.cyberforum.ru/cpp-beginners/thread816895.html
Составить программу, воспринимающую на входе целое четырехразрядное десятичное число и выдающую на выходе четырехразрядное число с обратным порядком десятичных цифр. Например: 1984 -> 4891. Указание: числа меньшей разрядности считать дополненными слева необходимым количеством нулей, например 1 -> 1000, 31 ->1300.
C++ Ошибка заполнения динамического двумерного массива При заполнении массива mas происходит выход за границы массива. По ходу исполнения программы данные записываются в ячейки и т.д. Судя по всему, программа не выходит своевременно из цикла (j=0; i<n; j++). Собственно вопрос: Что не так? cout<<"Введите размер массива, N: "; cin >> n; //=3 cout << "Введите элементы массива\n"; double **mas = new double*; for (i = 0; i < n; i++) {... подробнее

Показать сообщение отдельно
iNsomNia7
2 / 2 / 0
Регистрация: 19.11.2012
Сообщений: 32
24.03.2013, 11:30     В результате ввода переменной int присваивается символ
Создайте структуру с именем time. Три ее поля, имеющие тип int, будут называться hours, minutes и seconds. Напишите программу, которая просит пользователя ввести время в формате часы, минуты, секунды. Можно запрашивать на ввод как три значения сразу, так и выводить для каждой величины отдельное приглашение. Программа должна хранить время в структурной переменной типа time и выводить количество секунд в веденном времени, определяемое по формуле:

long totalsecs = t1.hours * 3600 + t1.minutes * 60 + t1.seconds;

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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
//9.cpp
#include <iostream>
#include <conio.h>
using namespace std;
 
struct time
{
     int hours;
     int minutes;
     int seconds;
};
 
int main()
{
    time Time;
    Time.hours = -2;
    Time.minutes = -2;
    Time.seconds = -2;
    unsigned long totalsecs;
    char dir = 'a';
    while(Time.hours < 0 || Time.hours > 24)
    {
        cout << "Enter the number of hours: ";
        cin >> Time.hours;
        if(Time.hours < 0 || Time.hours > 24)
        {
            cout << "Wrong Time!";
            do
            {
                cout << "\nContinue?(y/n)";
                dir = getche();
            }
            while(dir != 'y' && dir != 'n');
            if(dir == 'y')
            {
                cout << endl;
                continue;
            }
            else
            {
                cout << "\nExit..\n";
                system("pause");
                exit(0);
            }
        }
    };
 
    while(Time.minutes < 0 || Time.minutes >= 60)
    {
        cout << "Enter the number of minutes: ";
        cin >> Time.minutes;
        if(Time.minutes < 0 || Time.minutes >= 60)
        {
            cout << "Wrong time!";
            do
            {
                cout << "\nContinue?(y/n)";
                dir = getche();
            }while(dir != 'y' && dir != 'n');
            if(dir == 'y')
            {
                cout << endl;
                continue;
            }
            if(dir == 'n')
            {
                cout << "\nExit...\n";
                system("pause");
                exit(0);
            }
        }
    };
 
    while(Time.seconds < 0 || Time.seconds >= 60)
    {
        cout << "Enter the number of seconds: ";
        cin >> Time.seconds;
        if(Time.seconds < 0 || Time.seconds >= 60)
        {
            cout << "Wrong time!";
            do
            {
                cout << "\nContinue?(y/n)";
                dir = getche();
            }
            while(dir != 'y' && dir != 'n');
            if(dir == 'y')
            {
                cout << endl;
                continue;
            }
            else 
            {
                cout << "\nExit...\n";
                system("pause");
                exit(0);
            }
        }
    };
            
    totalsecs = Time.hours * 3600 + Time.minutes * 60 + Time.seconds;
    cout << "Totalsecs: " << totalsecs << endl;
 
    system("pause");
    return 0;
}
Я немного отхожу от условия задачи и пытаюсь усложнить, т.е. предусмотреть случаи, когда будет введены числа отрицательные или не соответствующие полям, к примеру (hours > 24 || hours < 0), но не могу ничего поделать, если вместо цифры вводится символ.
Знаю, что можно через getche считывать каждый символ, но на мой взгляд, это очень уныло и нерационально...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru