Вывод каждого 4го символа из файла - C (СИ)
Формулировка задачи:
Добрый день! Не могу решить задачу, помогите пожалуйста.
Вывести на экран каждое четвертое число из заданного текстового файла.
Сколько в строке символов я научил программу считать, осталось сделать что бы программа понимала какой символ считается 4ым.
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { FILE* mf; char str[1000]; int k = 0; int i = 0; mf=fopen("chisla.txt", "r"); while(!(feof(mf))) { fgets(str, 1000, mf); printf("%s", str); i = strlen(str); //Подсчет символов в строке printf("\nсимволов: " "%d\n", i); } fclose(mf); return 0; }
Решение задачи: «Вывод каждого 4го символа из файла»
textual
Листинг программы
#include <stdio.h> #include <locale.h> int main() { setlocale( LC_ALL,"Russian" ); FILE* mf; char str[1000]; int k = 0; int i = 0; int j = 0; mf=fopen("chisla.txt", "r"); while(!(feof(mf))) { fgets(str, 1000, mf); printf("%s", str); i = strlen(str); //Подсчет символов в строке printf("\n Всего символов: " "%d\n", i); for(k = 0; k < i; k++) { if(k>0){ if(str[k]==' '){//если пробел, считаем что было число. j++; } if((j+1)%4==0)//следующее число четвертое или его позиция кратна четырем. { while(str[k]){ printf("%c", str[k]); k++; if(str[k]==' ')//если нашли пробел в конце числа с номером {//кратным четырем выходим из цикла и увеличиваем счетчик чисел j++; break; } } } } } } fclose(mf); return 0; }
Объяснение кода листинга программы
В этом коде:
- Устанавливается русская локаль для корректного отображения кириллических символов.
- Открывается файл
chisla.txt
для чтения. - В цикле while считывается содержимое файла построчно с помощью функции fgets.
- Каждая строка выводится на экран с помощью функции printf.
- Для каждой строки подсчитывается количество символов с помощью функции strlen.
- Если количество символов больше 0, то ищется первый пробел в строке.
- Если пробел найден, то это значит, что текущее число уже закончилось, и начинается подсчет следующего числа.
- Если количество символов в строке кратно 4, то выводится текущее число.
- Число выводится до тех пор, пока не будет найден следующий пробел.
- После окончания чтения файла функция fclose закрывает файл.
- Возвращается 0, что означает успешное выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д