Написать программу, выводящую на экран несколько строк заданного текстового файла - C (СИ)
Формулировка задачи:
Задание:
Написать программу, выводящую на экран строки с 205 по 215 файла text.txt.
Делать нужно сортировкой, по примеру.
Заранее большое спасибо!
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> int main( int argc, char *argv[] ) { int fd[2], pid; int filedes=open( "names.txt", O_RDONLY ); dup2( filedes, fileno(stdin) ); close( filedes ); pipe( fd ); if ((pid = fork()) == 0) { /* Spawn a child */ dup2( fd[1], fileno( stdout ) ); close( fd[0] ); close( fd[1] ); execl( "/usr/bin/sort", "sort", (char *) 0 ); } else if (pid > 0) { /* Parent */ dup2( fd[0], fileno( stdin ) ); close( fd[1]); close( fd[0] ); execl( "/usr/bin/uniq", "uniq", (char *) 0 ); } else { perror( "fork" ); exit(1); } /* end if */ } /* main */
Решение задачи: «Написать программу, выводящую на экран несколько строк заданного текстового файла»
textual
Листинг программы
#include <stdio.h> void readRangeLinesFile(char* fileName, int firstPosition, int secondPosition); void readRangeLinesFile(char* fileName, int firstPosition, int secondPosition) { FILE* file = fopen(fileName, "r"); char line[256]; int number = 0; while (fgets(line, sizeof(line), file)) { //printf("Number: %d ", number); if (number >= (firstPosition - 1) && number < secondPosition) { printf("Строка: %s", line); } if (number == secondPosition) { break; } number++; } fclose(file); } int main(int argc, char* argv[]) { char* fileName = "file/text.txt"; readRangeLinesFile(fileName, 10, 15); return 0; }
Объяснение кода листинга программы
- Программа открывает файл с помощью функции fopen().
- Создается переменная типа FILE*, которая будет использоваться для работы с файлом.
- Создается массив типа char с именем line, который будет использоваться для чтения строк из файла.
- Создается переменная типа int с именем number, которая будет использоваться для отслеживания номера текущей строки.
- Запускается цикл while, который будет выполняться до тех пор, пока функция fgets() не вернет значение NULL.
- Внутри цикла while происходит проверка: если номер текущей строки находится в заданном диапазоне (от firstPosition до secondPosition включительно), то строка выводится на экран.
- Если номер текущей строки равен secondPosition, то цикл while прерывается с помощью оператора break.
- После окончания цикла while файл закрывается с помощью функции fclose().
- В функции main() задаются значения переменных fileName, firstPosition и secondPosition.
- Функция readRangeLinesFile() вызывается с заданными аргументами.
- После выполнения функции readRangeLinesFile() программа завершается с возвратом значения 0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д