Работа с файлом - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Есть задача которая работает через консоль. Мне нужно сделать так, чтобы она работала еще и через файл. Помогите пожалуйста.
#include <stdio.h>
#include <locale.h>
 
   main()
  {
       setlocale(LC_ALL, "Rus");
           int h[4], m[4], t[4];
           int r;
           int rh;
           int rm;
           int i;
           printf("Введите время вылета и прилета в формате hh:mm\n");
     for(i = 0; i < 4; i++)
     {
        scanf("%d:%d", &h[i], &m[i]);
        t[i] = (h[i]*60 + m[i]);
       if(h[i]>=24)
       {
        printf("Недопустимое значение\n");
          return 0;
       }
        if(m[i]>60)
       {
        printf("Недопустимое значение\n");
          return 0;
        }
       }
 
         if(t[0]>t[1])
         t[1] += 24*60;
         if(t[2]>t[3])
         t[3] += 24*60;
 
        r = ((t[1] - t[0] + t[3] - t[2]) / 2);
 
        rh = (r%(24*60)) / 60;
        rm = r % 60;
 
         printf("Время полета: %2.2d:%2.2d\n", rh, rm);
 
        return 0;
     }

Решение задачи: «Работа с файлом»

textual
Листинг программы
#include <stdio.h>
#include <time.h>//Не понятна для чего подключена эта библиотека?
 
int main(void)
{
    setlocale(LC_ALL, "Rus");
    int h[4], m[4], t[4];
    int r;
    int rh;
    int rm;
    int i;
    FILE *fIn = NULL;
    fIn = fopen("input.txt", "r");
    
    printf("Введите время вылета и прилета в формате hh:mm\n");
    for(i = 0; i < 4; i++)
    {
        fscanf(fIn, "%d:%d", &h[i], &m[i]);
        t[i] = (h[i]*60 + m[i]);
        if(h[i]>=24)
        {
            printf("Недопустимое значение\n");
            return 0;
        }
        if(m[i]>60)
        {
            printf("Недопустимое значение\n");
            return 0;
        }
    }
 
    if(t[0]>t[1])
        t[1] += 24*60;
    
    if(t[2]>t[3])
        t[3] += 24*60;
 
    r = ((t[1] - t[0] + t[3] - t[2]) / 2);
 
    rh = (r%(24*60)) / 60;
    rm = r % 60;
 
    printf("Время полета: %2.2d:%2.2d\n", rh, rm);
    
    fclose(fIn);
    
    return 0;
}

Объяснение кода листинга программы

  1. Подключение стандартных библиотек для работы с файлами и временем
  2. Объявление переменных для хранения времени вылета и прилета
  3. Объявление переменных для хранения разницы во времени между вылетом и прилетом
  4. Открытие файла input.txt для чтения
  5. Получение времени вылета и прилета с помощью функции fscanf
  6. Расчет времени в пути с учетом разницы в часах и минутах
  7. Проверка корректности введенных значений времени вылета и прилета
  8. Расчет разницы во времени между вылетом и прилетом
  9. Расчет времени полета с учетом разницы в часах и минутах
  10. Закрытие файла input.txt
  11. Вывод результата на экран
  12. Возврат 0, что означает успешное выполнение программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.571 из 5
Похожие ответы