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

Секундный отсчет - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
_Eldar_
 Аватар для _Eldar_
44 / 29 / 3
Регистрация: 31.10.2009
Сообщений: 200
12.02.2010, 08:44     Секундный отсчет #1
Привет всем. Как мне сделать отсчет времени, чтобы на экран выводилось 1 2 3 .... каждую секунду
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Darky
Быдлокодер
 Аватар для Darky
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
12.02.2010, 09:18     Секундный отсчет #2
C++
1
2
3
4
5
6
  int start,end,q=1;
start=clock();
...
end=clock();
  if (((end-start)/CLK_TCK)==1)
    cout<<q++;
_Eldar_
 Аватар для _Eldar_
44 / 29 / 3
Регистрация: 31.10.2009
Сообщений: 200
12.02.2010, 09:26  [ТС]     Секундный отсчет #3
и что здесь происходит? что за "..."

Добавлено через 35 секунд
что такое CLK_TCK

Добавлено через 3 минуты
что эта за функция clock() которая возвращает "60" постоянно

Добавлено через 23 секунды
Darky, объясни пожалуйтса
Darky
Быдлокодер
 Аватар для Darky
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
12.02.2010, 09:28     Секундный отсчет #4
... - программа в лаконичном ее исполнении.
CLK_TCK - это определенная константа, служащая для перевода неопределенных "часовых значений" в секунды. В более новых компиляторах обозначается как
CLOCKS_PER_SEC
Вообще, приведенный шаблон в сочетании с
C++
1
(end-start)/CLK_TCK)
используется для замера времени в программе.
_Eldar_
 Аватар для _Eldar_
44 / 29 / 3
Регистрация: 31.10.2009
Сообщений: 200
12.02.2010, 09:29  [ТС]     Секундный отсчет #5
мне не нужен замер времени, мне нужно в реальном времени показывать каждую секунду сообщение
Darky
Быдлокодер
 Аватар для Darky
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
12.02.2010, 09:30     Секундный отсчет #6
А как иначе ты определишь, когда прошла секунда, не замерив время?
_Eldar_
 Аватар для _Eldar_
44 / 29 / 3
Регистрация: 31.10.2009
Сообщений: 200
12.02.2010, 09:40  [ТС]     Секундный отсчет #7
а в с/с++ разве нет такой возможности?

Добавлено через 7 минут
Вроде нашел решение)
C++
1
2
3
4
5
6
7
8
unsigned int time_beg = (unsigned int)time(NULL);
unsigned int time_cur = time_beg;
while(((unsigned int)time(NULL) - time_beg) < 10){
    if((unsigned int)time(NULL) - time_cur == 1){
    time_cur = (unsigned int)time(NULL);
    cout << "\n13";
    }
}
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
12.02.2010, 18:10     Секундный отсчет #8
Ну или Sleep(1000), если под виндой.
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
12.02.2010, 22:32     Секундный отсчет #9
хмм..а если просто слиип юзать...
C++
1
2
3
4
5
6
7
8
int c=0;//секунды
int i=0;//счетчик
cin>>c;//выводим сколько секунд
while(i!=c){
++i;
Sleep(1000);//1000=1 sec
cout<<i<<endl;//выводим каждую секунду с новой строки
}
_Eldar_
 Аватар для _Eldar_
44 / 29 / 3
Регистрация: 31.10.2009
Сообщений: 200
15.02.2010, 01:19  [ТС]     Секундный отсчет #10
Nick Alte, не знаю у меня это и под виндой работает.

МедведЪ, что возврает Sleep(1000) ?

Добавлено через 43 секунды
и я не знаю заранее сколько будет работать программа.
Metal_666_
15 / 15 / 2
Регистрация: 19.10.2009
Сообщений: 187
15.02.2010, 01:27     Секундный отсчет #11
Sleep можно сказать приостанавливает действие программы на число милисекунд(вроде мили) заданное в скобках. Таким образом он будет выводить число от 0 до С каждые 1000 мс или 1 секунды
_Eldar_
 Аватар для _Eldar_
44 / 29 / 3
Регистрация: 31.10.2009
Сообщений: 200
15.02.2010, 01:31  [ТС]     Секундный отсчет #12
понятно) буду знать - СПАСИБО ВСЕМ ОТОЗВАВШИМСЯ)
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
15.02.2010, 08:55     Секундный отсчет #13
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
void WaitSec(int n);
 
int main(void) /* C89 ANSI */
{
    WaitSec(3);
 
    putchar('x');
    fflush(stdout);
    
    WaitSec(5);
    
    putchar('x');
    fflush(stdout);
    
    WaitSec(10);
    
    putchar('y');
    fflush(stdout);
    
    exit(EXIT_SUCCESS);
}
 
void WaitSec(int n)
{
    time_t t1, t2;
    
    time(&t1);
    do
        time(&t2);
    while ((int) difftime(t2, t1) <= n);
}
без проверок time()
_Eldar_
 Аватар для _Eldar_
44 / 29 / 3
Регистрация: 31.10.2009
Сообщений: 200
15.02.2010, 08:57  [ТС]     Секундный отсчет #14
accept, а можно с коментариями пожалуйста
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
15.02.2010, 10:17     Секундный отсчет #15
C
1
2
3
4
5
6
7
8
9
10
11
12
/* WaitSec:  производит задержку на n секунд */
void WaitSec(int n)
{
    time_t t1, t2; /* это знаковый тип, считай long int */
    
    time(&t1); /* в переменную t1 помещается количество секунд с 00:00:00 01.01.1970 */
    do
        time(&t2); /* в переменную t2 помещается количество секунд ... */
    while ((int) difftime(t2, t1) <= n);
    /* difftime возвращает double, из t2 вычитает t1
       double по ходу для того, чтобы большие значения возвращать */
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2010, 10:25     Секундный отсчет
Еще ссылки по теме:

C++ Заданы число и месяц невисокосного года. Вычислить порядковый номер даты, начиная отсчет с начала года
Писк и секундный лаг
C++ Отсчет временного интервала

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

Или воспользуйтесь поиском по форуму:
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
15.02.2010, 10:25     Секундный отсчет #16
Цитата Сообщение от _Eldar_ Посмотреть сообщение
МедведЪ, что возврает Sleep(1000) ?
когда в коде пишешь sleep(int); оно на время оснавливает код,потом когда заканчивается число,код продолжает работать...компилируй тогда это
C++
1
2
3
cout<<"pered SLEEP";
Sleep(1000);
cout<<"posle SLEEP";
Yandex
Объявления
15.02.2010, 10:25     Секундный отсчет
Ответ Создать тему
Опции темы

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