1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

С++ Изменение Времени, Ввод И Считывание С Двоеточиями...

Тема в разделе "Вопросы новичков и не только", создана пользователем Chevalier, 9 дек 2012.

Статус темы:
Закрыта.
  1. Chevalier

    Chevalier Гость

    Репутация:
    0
    прога выполняет роль функции time в командной строке и должна работать точно также...
    но у меня возникли проблемы не могу сделать ввод даты не через пробел а через : : ,
    и так чтобы прога работала...
    сейчас прога делает почти все
    разве что зацикливается если ввести смсволы а не цифры (либо не зацикливается а думает что нет прав)
    либо тупит если вместо /t ввести что то другое
    Помогите поправить и дописать код
    проблемные места пометил коментами

    Код:
    #include <iostream>
    #include <stdio.h>
    #include <time.h>
    #include <windows.h>
    using namespace std;
    
    
    int main (int argc, char* argv[]){
    setlocale (LC_ALL, "rus");
    SYSTEMTIME lt; 
    GetLocalTime(&lt);
    
    int i=0,b=0;
    if (argv[1]==0){//argv играет роль time 
    
    
    
    printf("Текущее время: %d:%d:%d,%d\n",lt.wHour,lt.wMinute,lt.wSecond,lt.wMilliseconds);
    int hour,minutes,seconds,milliseconds;
    //цикл, если введена команда time (argv[1]) то после вывода времени идет запрос на введение нового
    while (i=1) {
    printf("Введите новое время: ");
    //тут идет ввод времени через пробел, нужно нахимичить ввод ввиде часы:минуты:секунды,миллисекунды
    cin>>hour>>minutes>>seconds>>milliseconds;
    //если часы минуты секунды или миллисекунды введены криво
    //тут хорошо было бы вставить условие если введен символ то так же вывести "указано недопустимое время"
    //однако прога либо зацикливается либо выдает что нету прав администратора... подскажите как реальзовать??
    if ((hour>24)||(minutes>60)||(seconds>60)||(milliseconds>1000))	
    {
    printf ("Указано недопустимое время. \n");
    i=0;
    
    }
    else {
    lt.wHour = hour; 
    lt.wMinute = minutes; 
    lt.wSecond = seconds;
    lt.wMilliseconds = milliseconds;
    SetLocalTime(&lt);// если время введено правильно идет проверка на права, т.е.
    // можно ли изменить время, если нельзя то выводится смска, если можно то меняет!
    if (SetLocalTime (&lt)==0){
    printf("Клиент не обладает требуемыми правами.\n");
    i=1;
    return 1;
    
    }
    }
    }
    return 1;
    }
    
    
    
    if (strcmp(argv[1],"/t")==0) // если в командной строке при вызове проги написать /t то выдается время
    {
    printf("%d:%d:%d\n",lt.wHour,lt.wMinute,lt.wSecond);
    return 1;
    }
    else
    
    if (strcmp(argv[1],"exit")!=0){
    printf("\"%s\" не является внутренней или внешней\n командой, исполняемой программой или пакетным файлом.\n",argv[1]);}
    else	
    return 1;
    
    return 0;
    }
     
  2. rrrFer

    rrrFer Гость

    Репутация:
    0
    Код:
     //тут идет ввод времени через пробел, нужно нахимичить ввод ввиде часы:минуты:секунды,миллисекунды
    cin>>hour>>minutes>>seconds>>milliseconds;
    http://www.cplusplus.com/reference/istream/istream/
    МБ поможет.
     
  3. rrrFer

    rrrFer Гость

    Репутация:
    0
    а нет, не поможет...

    но вот такая функция точно поможет:
    Код:
    void get(std::istream& ist, char **str) {
    char c;
    int i;
    for(i = 0; 0 == ist.eof(); ++i) {
    c = ist.get();
    if (':' == c) break;
    (*str)[i] = c;
    }
    (*str)[i] = 0;
    }
     
Загрузка...
Похожие Темы - С++ Изменение Времени
  1. DarkVss
    Ответов:
    2
    Просмотров:
    2.051
  2. Vadimisprice
    Ответов:
    1
    Просмотров:
    35
  3. 5564485210215468
    Ответов:
    5
    Просмотров:
    79
  4. Andrey Kha
    Ответов:
    0
    Просмотров:
    109
  5. voldim
    Ответов:
    0
    Просмотров:
    217
Статус темы:
Закрыта.

Поделиться этой страницей