Мне задана задача по программированию, входными данными которой является время, в формате...

0 голосов
39 просмотров

Мне задана задача по программированию, входными данными которой является время, в формате HH:MM, например 23:44 , как я могу счесть это время? char/int?


Информатика (114 баллов) | 39 просмотров
0

C++

0

Если есть двоеточие, то ты можешь считать его как массив char-ов, либо как string

0

Это понятно, но как его использовать? Как с ним работать

0

Тебе просто надо из строки выделить две переменные: часы и минуты?

Дан 1 ответ
0 голосов

В кратце как-то так, но синтаксис вроде под VS2015

int main()

{

//---------------------------------------------------------------------

FILE *in;

char *S = new char[1];

S[0] = '\0';

char n;

fopen_s(&in, "D:\\input1.txt", "r");

while (feof(in) == false)

{

 int len = strlen(S), lin = 0;

 fscanf_s(in, "%c", &n);

 

 char *tmp = new char[len + 2];

 strcpy_s(tmp, len + 2, S);

 tmp[len] = n;

 tmp[len + 1] = '\0';

 delete[] S;

 S = tmp; // полностью считали данные с файла в массив char

}

fclose(in); //закрыли файл

//--------------------------------------------------------------------

int len = strlen(S), j = 0;

char *D = new char[len];

for (int i = 0; i < len; i++)

{

 D[i] = '\0';

}

int d = -1, g = 0;

//--------------------------------------------------------------------

for (int i = 0; i < len; i++)

{

 //--------------------------------------------------------------------

 if ((S[i] == ':') && (g=0))

 {

 char *HH = new char[strlen(D)];

 for (int t = 0; t < strlen(D); t++)

 {

   HH[t] = D[t];

 }

 int y = atoi(HH); //из char переведенно в int  

 int HORS = y;    

 g++;

 }

 //--------------------------------------------------------------------

 if ((S[i] == ' ') && (g = 1))

 {

 char *MM = new char[strlen(D)];

 for (int t = 0; t < strlen(D); t++)

 {

   MM[t] = D[t];

 }

 int y = atoi(MM); //из char переведенно в int  

 int HORS = y;  

 g++;

 }

 //--------------------------------------------------------------------  

}

return 0;

}

(654k баллов)