Вывод каждого 4го символа из файла - C (СИ)

Узнай цену своей работы

Формулировка задачи:

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

Решение задачи: «Вывод каждого 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;
}

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

В этом коде:

  1. Устанавливается русская локаль для корректного отображения кириллических символов.
  2. Открывается файл chisla.txt для чтения.
  3. В цикле while считывается содержимое файла построчно с помощью функции fgets.
  4. Каждая строка выводится на экран с помощью функции printf.
  5. Для каждой строки подсчитывается количество символов с помощью функции strlen.
  6. Если количество символов больше 0, то ищется первый пробел в строке.
  7. Если пробел найден, то это значит, что текущее число уже закончилось, и начинается подсчет следующего числа.
  8. Если количество символов в строке кратно 4, то выводится текущее число.
  9. Число выводится до тех пор, пока не будет найден следующий пробел.
  10. После окончания чтения файла функция fclose закрывает файл.
  11. Возвращается 0, что означает успешное выполнение программы.

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


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

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

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