Дан текстовый файл. Напечатать символы с 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д