Дан текстовый файл. Напечатать символы с s1 по s2 из строки с номером k - C (СИ)
Формулировка задачи:
Дан текстовый файл. Напечатать символы с s1 по s2 из строки с номером k (эти данные вводятся с клавиатуры)
Решение задачи: «Дан текстовый файл. Напечатать символы с s1 по s2 из строки с номером k»
textual
Листинг программы
#include <stdio.h> #include <string.h> int main() { FILE *fin; int i, k, n_line = 0, s1, s2; char str[80]; fin = fopen("input.txt", "r"); puts("Input line number:"); scanf("%d", &k); puts("Input number symbols 1 and 2"); scanf("%d%d", &s1, &s2); if(s1 > s2 || s2 > 79){ puts("incorrect input,try again"); return 1; } while(fgets(str, 80, fin)){ n_line++; if(n_line == k){ for(i = s1 - 1; i < s2 - 1 && i < strlen(str) - 1; i++) printf("%c", str[i]); break; } } if(n_line < k){ printf("Line not found,try again"); return 1; } fclose(fin); return 0; }
Объяснение кода листинга программы
- Подключаются необходимые библиотеки для работы с файлами и строками
- Объявляются переменные:
—
FILE *fin
- указатель на файл, который будет использоваться для чтения —int i, k, n_line = 0, s1, s2;
- целочисленные переменные для хранения номеров и символов —char str[80];
- массив символов для хранения строки из файла - Открывается файл
input.txt
для чтения - Выводится сообщение для ввода номера строки
- Пользователь вводит номер строки и сохраняется в переменной
k
- Выводится сообщение для ввода символов 1 и 2
- Пользователь вводит символы и сохраняются в переменных
s1
иs2
- Проверяется корректность введенных данных (s1 <= s2 <= 79)
- В цикле while считываются строки из файла до тех пор, пока не будет найдена нужная строка
- Если найдена нужная строка, то в цикле for выводятся символы от s1 до s2
- Если нужная строка не найдена, выводится сообщение об ошибке
- Закрывается файл
- Возвращается 0, если все успешно, иначе возвращается 1
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д