C
Chevalier
прога выполняет роль функции time в командной строке и должна работать точно также...
но у меня возникли проблемы не могу сделать ввод даты не через пробел а через : : ,
и так чтобы прога работала...
сейчас прога делает почти все
разве что зацикливается если ввести смсволы а не цифры (либо не зацикливается а думает что нет прав)
либо тупит если вместо /t ввести что то другое
Помогите поправить и дописать код
проблемные места пометил коментами
но у меня возникли проблемы не могу сделать ввод даты не через пробел а через : : ,
и так чтобы прога работала...
сейчас прога делает почти все
разве что зацикливается если ввести смсволы а не цифры (либо не зацикливается а думает что нет прав)
либо тупит если вместо /t ввести что то другое
Помогите поправить и дописать код
проблемные места пометил коментами
C++:
#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(<);
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(<);// если время введено правильно идет проверка на права, т.е.
// можно ли изменить время, если нельзя то выводится смска, если можно то меняет!
if (SetLocalTime (<)==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;
}