Чтение случайной строки из 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); }
Объяснение кода листинга программы
В этом коде:
- Объявлены две строки:
buffer
иline
. - Инициализируется переменная
i
для контроля цикла. - Происходит чтение из стандартного ввода (
stdin
) вbuffer
с помощью функцииfgets
. - С помощью оператора
%
проверяется, является ли текущая итерация случайной (с вероятностью 1/i). - Если условие выполняется, то содержимое
buffer
копируется вline
. - Наконец, содержимое
line
выводится на стандартный вывод (stdout
) с помощью функцииprintf
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д