Чтение из файла пяти последних строк - C (СИ)

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

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

Добрый вечер! Есть один модуль , который отвечает за ввод последних 5 результатов программы. (печатает , последние 5 строчек файла) Помогите разобраться. язык Си
//Запись последних результатов в в базу(файл)
void set_last_res(float val)
{
    FILE *fin = fopen("base", "a+");
    fprintf(fin, "%g\n", val);
    fclose(fin);
}
 
//Вывод последних результатов на экран
void show_last_res(void)
{
    FILE* fout = fopen("base", "a+");
    int i = 0;
     //а именно непонятно ниже.
    char base[50][20];
    while(!feof(fout))
    {
        if(!feof(fout))
          fscanf(fout, "%s", base[i++]);
    }
    i = i - 2;
    if(i >= 5)
    {
        for(int j = 4; j >= 0; --j)
            printf("%s\n", base[i--]);
    }
    else
    {
        while(i >= 0)
            printf("%s\n", base[i--]);
    }
    fclose(fout);
}

Решение задачи: «Чтение из файла пяти последних строк»

textual
Листинг программы
if(i >= 5)
    {
        for(int j = 4; j >= 0; --j)
            printf("%s\n", base[i--]);
    }
    else
    {
        while(i >= 0)
            printf("%s\n", base[i--]);
    }

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

В данном коде выполняется следующая последовательность действий:

  1. Проверяется условие i >= 5.
  2. Если условие истинно, то выполняется цикл for с переменной j от 4 до 0. В каждой итерации цикла выводится значение переменной base[i--] с помощью функции printf, и уменьшается значение i на 1.
  3. Если условие i >= 5 ложно, то выполняется цикл while с переменной i от 0 до 0. В каждой итерации цикла выводится значение переменной base[i--] с помощью функции printf, и уменьшается значение i на 1. Список действий:
  4. Проверка условия i >= 5 - 1
  5. Если условие истинно, то:
    • Цикл for с переменной j от 4 до 0
    • Вывод значения переменной base[i--] с помощью функции printf
    • Уменьшение значения i на 1
    • Если условие i >= 5 ложно, то:
    • Цикл while с переменной i от 0 до 0
      • Вывод значения переменной base[i--] с помощью функции printf
      • Уменьшение значения i на 1 Вывод:
  6. Значение переменной base[4] выводится на экран.
  7. Значение переменной base[3] выводится на экран.
  8. Значение переменной base[2] выводится на экран.
  9. Значение переменной base[1] выводится на экран.
  10. Значение переменной base[0] выводится на экран.

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


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

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

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