Анализ файла на наличие числовой информации - C (СИ)

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

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

Есть файл, в нём нужно оставить только слова состоящие из цифр полностью. Под словом подразумевается последовательность символов ограниченная пробелами.

Решение задачи: «Анализ файла на наличие числовой информации»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. /*Есть файл, в нём нужно оставить только слова состоящие из цифр полностью.
  4.  Под словом подразумевается последовательность символов ограниченная пробелами.*/
  5. int main()
  6. {
  7.     int i = 0, x = 0;
  8.     char s[80];
  9.     FILE *f1, *f2;
  10.     f1 = fopen("file1.txt", "r");
  11.     f2 = fopen("file2.txt", "w");
  12.     while( 1 == fscanf(f1, "%s", s)){
  13.         x  = printf("%s ", s);
  14.         system("cls");
  15.         while(1){
  16.             if(s[i] < '0' || s[i] > '9'){
  17.             i = 0;break;
  18.             }
  19.             else ++i;
  20.             if(i == x - 1){
  21.                 fprintf(f2, "%s\n", s);
  22.                 i = 0;break;
  23.             }
  24.         }
  25.     }
  26.     fclose(f1);
  27.     fclose(f2);
  28.     f1 = fopen("file1.txt", "w");
  29.     f2 = fopen("file2.txt", "r");
  30.     while(NULL != fgets(s, 80, f2))
  31.         fprintf(f1, "%s", s);
  32.     fclose(f1);
  33.     fclose(f2);
  34.     remove("file2.txt");
  35.     return 0;
  36. }

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

  1. Включаем необходимые заголовочные файлы для работы с файлами и математическими операциями
  2. Указываем задачу программы - анализ файла на наличие числовой информации
  3. Объявляем переменные:
    • i - счетчик символов в строке
    • x - счетчик количества строк, которые мы уже обработали
    • s - строка, которая будет хранить текущую строку из файла
    • f1, f2 - указатели на файлы для чтения и записи
  4. Открываем файл для чтения (f1) и записи (f2)
  5. Запускаем цикл, который будет читать файл построчно
  6. Внутри цикла проверяем каждый символ в строке: если символ не является числом, то начинаем цикл заново
  7. Если текущий символ является числом, увеличиваем счетчик i
  8. Если i равно x - 1, то записываем текущую строку в файл для записи
  9. После окончания чтения файла, закрываем файлы f1 и f2
  10. Открываем файл для записи (f1) и чтения (f2)
  11. Записываем содержимое файла для чтения в файл для записи
  12. Закрываем файлы f1 и f2
  13. Удаляем файл file2.txt
  14. Возвращаем 0, чтобы указать, что программа успешно завершилась

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


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

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

7   голосов , оценка 4.429 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы