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

Вновь эти часы - C++

Восстановить пароль Регистрация
 
Ане4кA
1 / 1 / 0
Регистрация: 05.05.2011
Сообщений: 66
03.07.2012, 12:45     Вновь эти часы #1
Здравствуйте! вот программа с часами, Подскажите пожалуйста а как сделать чтобы формат времени был 00 00 00? чтобы например при запуске показывало не 1 12 33 к примеру,а 01 12 33

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
#include <iostream>
using namespace std;
class State {
public:
virtual void handle() = 0;
protected:
static int h_, m_, s_;
};
int State::h_ = 0;
int State::m_ = 0;
int State::s_ = 0;
class Reset : public State {
public:
virtual void handle(){ h_ = 0; m_ = 0; s_ = 0;}
};
class Tick : public State {
public:
virtual void handle() {
if(++s_ == 60) {
s_ = 0;
if(++m_ == 60) {
m_ = 0;
h_ = (h_ + 1) % 24;
}
}
}
};
class IncHour : public State {
public:
virtual void handle() {
h_ = (h_ + 1) % 2;
}
};
class IncMinute : public State {
public:
virtual void handle() {
m_ = (m_ + 1) % 60;
}
};
class ShowTime : public State {
public:
virtual void handle() {
std::cout « h_;
std::cout « " ";
std::cout « m_;
std::cout « " ";
std::cout « s_;
std::cout « '\r';
}
};
class myclock {
private:
State *state;
public:
myclock(): state(0) {}
void request() {
if( state ) {
state -> handle();
}
}
State* getState() {
return state;
}
void setState( State* state ) {
this -> state = state;
}
};
int main() {
State *reset = new Reset;
State *showtime = new ShowTime;
State *tick = new Tick;
State *inchour = new IncHour;
State *incminute = new IncMinute;
myclock watch;
watch.setState( reset );
watch.request();
watch.setState( inchour );
for(int i=1; i <= 0; i++) 
watch.request(); // гбв ®ўЁвм з бл
watch.setState( incminute );
for(int i=1; i <= 0; i++) 
watch.request(); // гбв ®ўЁвм ¬Ё гвл
while(1) {
watch.setState(tick);
watch.request();
watch.setState(showtime);
watch.request();
}
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.07.2012, 12:45     Вновь эти часы
Посмотрите здесь:

Часы C++
C++ Часы C++
Вновь строки. Отредактировать заданное предложение, заменяя многоточия точкой C++
Часы C++
C++ И вновь абстрактный класс
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
03.07.2012, 12:57     Вновь эти часы #2
Ане4кA, Отформатировать к примеру переводом в строку или так.
C++
1
2
3
4
5
6
7
#include <iostream>
#include <iomanip>
 
int main()
{
   std::cout << std::setfill('0') << std::setw(2) << 4 << std::endl;
}
http://cplusplus.com/reference/iostream/ios_base/width/
Ане4кA
1 / 1 / 0
Регистрация: 05.05.2011
Сообщений: 66
03.07.2012, 20:37  [ТС]     Вновь эти часы #3
ForEveR, не получилось..
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
03.07.2012, 20:49     Вновь эти часы #4
Ане4кA, Конкретнее, что не получилось? Как сделали? Что ожидалось?
Ане4кA
1 / 1 / 0
Регистрация: 05.05.2011
Сообщений: 66
03.07.2012, 20:54  [ТС]     Вновь эти часы #5
не получилось изменить формат, вместо этого появилась загадочная 04 в первой строчке, а ниже все так же время
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
03.07.2012, 20:59     Вновь эти часы #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
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
#include <iostream>
using namespace std;
class State {
public:
virtual void handle() = 0;
protected:
static int h_, m_, s_;
};
int State::h_ = 0;
int State::m_ = 0;
int State::s_ = 0;
class Reset : public State {
public:
virtual void handle(){ h_ = 0; m_ = 0; s_ = 0;}
};
class Tick : public State {
public:
virtual void handle() {
if(++s_ == 60) {
s_ = 0;
if(++m_ == 60) {
m_ = 0;
h_ = (h_ + 1) % 24;
}
}
}
};
class IncHour : public State {
public:
virtual void handle() {
h_ = (h_ + 1) % 2;
}
};
class IncMinute : public State {
public:
virtual void handle() {
m_ = (m_ + 1) % 60;
}
};
class ShowTime : public State {
public:
virtual void handle() {
std::cout « std::setfill('0') << std::setw(2) << h_;
std::cout « " ";
std::cout « std::setfill('0') << std::setw(2) << m_;
std::cout « " ";
std::cout « std::setfill('0') << std::setw(2) << s_;
std::cout « '\r';
}
};
class myclock {
private:
State *state;
public:
myclock(): state(0) {}
void request() {
if( state ) {
state -> handle();
}
}
State* getState() {
return state;
}
void setState( State* state ) {
this -> state = state;
}
};
int main() {
State *reset = new Reset;
State *showtime = new ShowTime;
State *tick = new Tick;
State *inchour = new IncHour;
State *incminute = new IncMinute;
myclock watch;
watch.setState( reset );
watch.request();
watch.setState( inchour );
for(int i=1; i <= 0; i++) 
watch.request(); // гбв ®ўЁвм з бл
watch.setState( incminute );
for(int i=1; i <= 0; i++) 
watch.request(); // гбв ®ўЁвм ¬Ё гвл
while(1) {
watch.setState(tick);
watch.request();
watch.setState(showtime);
watch.request();
}
}
Ане4кA
1 / 1 / 0
Регистрация: 05.05.2011
Сообщений: 66
03.07.2012, 21:04  [ТС]     Вновь эти часы #7
видимо не, спасибо) я была близка
а еще спросить можно?
sw_() отвечает за ширину поля, им можно было воспользоваться?
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
03.07.2012, 21:10     Вновь эти часы #8
Ане4кA, sw_ це что?
Ане4кA
1 / 1 / 0
Регистрация: 05.05.2011
Сообщений: 66
03.07.2012, 21:15  [ТС]     Вновь эти часы #9
программа выдает ошибку..
`setw' is not a member of `std' на 44 строчке
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
03.07.2012, 21:18     Вновь эти часы #10
Ане4кA, В начало добавьте #include <iomanip>
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2012, 21:33     Вновь эти часы
Еще ссылки по теме:

C++ Окно командной строки исчезает и появляется вновь
C++ Программа, которая переводит часы и минуты в минуты или минуты – в часы и минуты
Сократить объявление auto_ptr для вновь создаваемого объекта C++

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

Или воспользуйтесь поиском по форуму:
Ане4кA
1 / 1 / 0
Регистрация: 05.05.2011
Сообщений: 66
03.07.2012, 21:33  [ТС]     Вновь эти часы #11
ForEveR,
C++
1
2
3
 void sw_(){
cout.fill('0');
cout.width(2);}
заполнение поля вроде..

Добавлено через 1 минуту
ForEveR, тем не менее ошибка осталась

Добавлено через 12 минут
я нашла ошибку, работает!
Yandex
Объявления
03.07.2012, 21:33     Вновь эти часы
Ответ Создать тему
Опции темы

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