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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Gouvere
19 / 19 / 3
Регистрация: 25.11.2013
Сообщений: 122
#1

Код со структурой не возвращает ничего - C++

06.08.2014, 08:53. Просмотров 202. Ответов 6
Метки нет (Все метки)

Написал код:
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
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
 
struct time {
    unsigned char hour;
    unsigned char minute;
    unsigned char second;
};
 
bool set(time &, unsigned char, unsigned char, unsigned char);
 
int main() {
 
    time t;
 
    set(t, 13, 47, 24);
 
    cout << t.hour << endl;
    
    cin.get();
    return 0;
}
 
bool set(time & st, unsigned char h, unsigned char m, unsigned char s) {
    if(h > 23 || m > 59 || s > 59) {
        return false;
    }
 
    st.hour = h;
    st.minute = m;
    st.second = s;
 
    return true;
}
Скажите, пожалуйста, почему он выводит пустоту? Я же ведь давал значение t.hour через set().
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.08.2014, 08:53     Код со структурой не возвращает ничего
Посмотрите здесь:

Задание со структурой. C++
Работа со структурой C++
программа со структурой C++
C++ Работа со структурой
C++ со структурой
C++ Слишком сложный код программы, ничего не понимаю(
Работа со структурой C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fishec
119 / 119 / 30
Регистрация: 07.09.2013
Сообщений: 338
06.08.2014, 09:17     Код со структурой не возвращает ничего #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Потому что выводится символ, соответствующий коду 13, т.к. тип полей char.
Gouvere
19 / 19 / 3
Регистрация: 25.11.2013
Сообщений: 122
06.08.2014, 09:21  [ТС]     Код со структурой не возвращает ничего #3
fishec, спасибо! Я и не подумал об этом. Просто недавно перешел с Си и там тип char можно было выводить как цифру через printf.
SatanaXIII
Супер-модератор
Эксперт С++
5589 / 2623 / 239
Регистрация: 01.11.2011
Сообщений: 6,448
Завершенные тесты: 1
06.08.2014, 09:24     Код со структурой не возвращает ничего #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
20
    cout << static_cast<int>( t.hour ) << endl;
Gouvere
19 / 19 / 3
Регистрация: 25.11.2013
Сообщений: 122
06.08.2014, 09:27  [ТС]     Код со структурой не возвращает ничего #5
SatanaXIII, у меня еще вопрос: при преобразовании char в int, получается, что вместо 1 байта будет затрачено 4?
SatanaXIII
Супер-модератор
Эксперт С++
5589 / 2623 / 239
Регистрация: 01.11.2011
Сообщений: 6,448
Завершенные тесты: 1
06.08.2014, 09:40     Код со структурой не возвращает ничего #6
Цитата Сообщение от Gouvere Посмотреть сообщение
при преобразовании char в int, получается, что вместо 1 байта будет затрачено 4?
Да. При выводе будет задействовано четыре байта. Для хранения так же останется один байт - никаких дополнительных расходов.

Добавлено через 66 секунд
C++
1
cout << sizeof( static_cast<int>( t.hour ) );
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.08.2014, 10:24     Код со структурой не возвращает ничего
Еще ссылки по теме:

Почему код задачи возвращает мусор или 0 C++
Работа со структурой C++
C++ Программа со структурой do while
задание-написать код со структурой по предложенному рисунку C++

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

Или воспользуйтесь поиском по форуму:
Gouvere
19 / 19 / 3
Регистрация: 25.11.2013
Сообщений: 122
06.08.2014, 10:24  [ТС]     Код со структурой не возвращает ничего #7
SatanaXIII, спасибо) Тему можно закрывать)
Yandex
Объявления
06.08.2014, 10:24     Код со структурой не возвращает ничего
Ответ Создать тему
Опции темы

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