Чтение случайной строки из txt файла - C (СИ)

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

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

Здравствуйте. Подскажите пожалуйста, как можно проще реализовать чтение и вывод на экран случайной строки из текстового файла?

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

textual
Листинг программы
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
 
int main()
{
  char buffer[1024], line[1024] = { 0 };
  unsigned i = 0;
 
  while (fgets(buffer, sizeof buffer, stdin) != NULL)
    if (rand() % ++i == 0)
      strcpy(line, buffer);
 
  printf("%s", line);
}

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

В этом коде:

  1. Объявлены две строки: buffer и line.
  2. Инициализируется переменная i для контроля цикла.
  3. Происходит чтение из стандартного ввода (stdin) в buffer с помощью функции fgets.
  4. С помощью оператора % проверяется, является ли текущая итерация случайной (с вероятностью 1/i).
  5. Если условие выполняется, то содержимое buffer копируется в line.
  6. Наконец, содержимое line выводится на стандартный вывод (stdout) с помощью функции printf.

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


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

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

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