Написать программу, выводящую на экран несколько строк заданного текстового файла - 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;
}

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

  1. Программа открывает файл с помощью функции fopen().
  2. Создается переменная типа FILE*, которая будет использоваться для работы с файлом.
  3. Создается массив типа char с именем line, который будет использоваться для чтения строк из файла.
  4. Создается переменная типа int с именем number, которая будет использоваться для отслеживания номера текущей строки.
  5. Запускается цикл while, который будет выполняться до тех пор, пока функция fgets() не вернет значение NULL.
  6. Внутри цикла while происходит проверка: если номер текущей строки находится в заданном диапазоне (от firstPosition до secondPosition включительно), то строка выводится на экран.
  7. Если номер текущей строки равен secondPosition, то цикл while прерывается с помощью оператора break.
  8. После окончания цикла while файл закрывается с помощью функции fclose().
  9. В функции main() задаются значения переменных fileName, firstPosition и secondPosition.
  10. Функция readRangeLinesFile() вызывается с заданными аргументами.
  11. После выполнения функции readRangeLinesFile() программа завершается с возвратом значения 0.

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


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

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

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