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

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

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

Есть задача которая работает через консоль. Мне нужно сделать так, чтобы она работала еще и через файл. Помогите пожалуйста.
Листинг программы
  1. #include <stdio.h>
  2. #include <locale.h>
  3. main()
  4. {
  5. setlocale(LC_ALL, "Rus");
  6. int h[4], m[4], t[4];
  7. int r;
  8. int rh;
  9. int rm;
  10. int i;
  11. printf("Введите время вылета и прилета в формате hh:mm\n");
  12. for(i = 0; i < 4; i++)
  13. {
  14. scanf("%d:%d", &h[i], &m[i]);
  15. t[i] = (h[i]*60 + m[i]);
  16. if(h[i]>=24)
  17. {
  18. printf("Недопустимое значение\n");
  19. return 0;
  20. }
  21. if(m[i]>60)
  22. {
  23. printf("Недопустимое значение\n");
  24. return 0;
  25. }
  26. }
  27. if(t[0]>t[1])
  28. t[1] += 24*60;
  29. if(t[2]>t[3])
  30. t[3] += 24*60;
  31. r = ((t[1] - t[0] + t[3] - t[2]) / 2);
  32. rh = (r%(24*60)) / 60;
  33. rm = r % 60;
  34. printf("Время полета: %2.2d:%2.2d\n", rh, rm);
  35. return 0;
  36. }

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

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <time.h>//Не понятна для чего подключена эта библиотека?
  3.  
  4. int main(void)
  5. {
  6.     setlocale(LC_ALL, "Rus");
  7.     int h[4], m[4], t[4];
  8.     int r;
  9.     int rh;
  10.     int rm;
  11.     int i;
  12.     FILE *fIn = NULL;
  13.     fIn = fopen("input.txt", "r");
  14.    
  15.     printf("Введите время вылета и прилета в формате hh:mm\n");
  16.     for(i = 0; i < 4; i++)
  17.     {
  18.         fscanf(fIn, "%d:%d", &h[i], &m[i]);
  19.         t[i] = (h[i]*60 + m[i]);
  20.         if(h[i]>=24)
  21.         {
  22.             printf("Недопустимое значение\n");
  23.             return 0;
  24.         }
  25.         if(m[i]>60)
  26.         {
  27.             printf("Недопустимое значение\n");
  28.             return 0;
  29.         }
  30.     }
  31.  
  32.     if(t[0]>t[1])
  33.         t[1] += 24*60;
  34.    
  35.     if(t[2]>t[3])
  36.         t[3] += 24*60;
  37.  
  38.     r = ((t[1] - t[0] + t[3] - t[2]) / 2);
  39.  
  40.     rh = (r%(24*60)) / 60;
  41.     rm = r % 60;
  42.  
  43.     printf("Время полета: %2.2d:%2.2d\n", rh, rm);
  44.    
  45.     fclose(fIn);
  46.    
  47.     return 0;
  48. }

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

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

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


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

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

7   голосов , оценка 3.571 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы