Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.10.2010, 22:25   #1
KEIego
Пользователь
 
Регистрация: 24.09.2010
Сообщений: 22
Вопрос Программа для имитации работы часов

Доброго времени суток!
Программа должна имитировать работу цифровых часов для отображения времени с точностью до одной секунды.
При написании возникла проблема, а именно: необходимо (вдобавок к тому, что имеется) сделать возможным передачу данных (начального показания часов) через аргументы командной строки. Т.е. передаю программе любое время (11.12.31) и начинается отсчет. На данный момент программа может только с помощью функции time() узнавать текущее время данной системы и отображать его в потоке стандартного вывода. Помогите разобраться, как реализовать имитацию работы цифровых часов с данными, полученными через аргументы командной строки.
Код:
#include <stdlib.h>
#include <time.h>
#include <stdio.h>

int main()
{
   char *buf;
   struct tm*ptr;
   time_t lt;
   lt=time(NULL);
   ptr=localtime(&lt);

   buf =(char*)calloc(8, sizeof(char));
   sprintf(buf,"%02d:%02d:%02d", ptr->tm_hour, ptr->tm_min, ptr->tm_sec);
      putc('\n', stdout);

   int hour=ptr->tm_hour;
   int min=ptr->tm_min;
   int sec=ptr->tm_sec;
   fprintf(stdout, "\r%s", buf);
      fflush(stdout);

   while (1)
   {
      lt=time(NULL);
       ptr=localtime(&lt);
       if((ptr->tm_sec>sec)||(ptr->tm_min>min)||(ptr->tm_hour>hour))
       {
          sprintf(buf,"%02d:%02d:%02d",ptr->tm_hour,ptr->tm_min,ptr->tm_sec);
           fprintf(stdout, "\r%s", buf);
           fflush(stdout);
       }
   }
}
KEIego вне форума Ответить с цитированием
Старый 03.10.2010, 08:25   #2
coinkrsk
пыжашийся нуб
Пользователь
 
Регистрация: 19.06.2010
Сообщений: 93
По умолчанию

Просто пересчитывай время так:
точка отсчета - время запуска + текущее время
coinkrsk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа для работы со звуком Lemo Софт 12 12.03.2010 11:16
Программа для работы с ТВ-Тюнером firmwares Фриланс 6 10.01.2010 20:26
часы показывают m часов, n минут и k секунд. Каковы будут показатели часов через p часов, q минут и r сек Паскалька^^ Помощь студентам 3 11.10.2009 19:41
Программа для работы с Excel zxspec Помощь студентам 0 04.08.2009 02:29
Программа для работы с Шоубизнесом litvik БД в Delphi 3 02.02.2008 17:57