Считать текст из файла и вывести на экран только строки, содержащие двузначное числа - C (СИ)

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

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

Написать программу, которая считывает текст из файла и выводит на экран только строки, содержащие двузначное числа. Ввод-вывод осуществляется с помощью средств С. Думал так, сначала сделаю что бы просто считал текст из файла, а потом вывод строк:
#include <stdio.h>
#include <conio.h>
 
int main() {
    clrscr();
 
    FILE *fileOpen;
    fileOpen = fopen("C:\\test1.txt","rt");
    if (!fileOpen) {
        printf("Error: Can't open file\n");
    }
 
    while ( (c = getc(fileOpen)) != EOF) 
        putchar(c);
    printf("%c",c);
 
    fclose(fileOpen);
    printf("\n");
    printf("\nPress any key");
 
    getch();
 
    return 0;
}
и вот после этого я остановился, что дальше делать не знаю. Как сделать эту проверку на двузначное число и как вывести только одну строку? Буду благодарен за помощь.

Решение задачи: «Считать текст из файла и вывести на экран только строки, содержащие двузначное числа»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
#include <ctype.h>
/*...*/
FILE * f;
char buf[BUFSIZ], * p;
/* open file... */
while ( fgets(buf, BUFSIZ, f) )
    if ( ( p = strpbrk(buf, "0123456789") ) && isdigit(*(p+1)) && ! isdigit(*(p+2)) )
        printf("%s", buf);
/*...*/

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

  1. Подключение необходимых библиотек: <stdio.h>, <string.h>, <ctype.h>.
  2. Объявление переменных: — f — указатель на файл; — buf — массив символов, используемый для чтения из файла; — p — указатель на первый непропущенный символ в массиве buf.
  3. Открытие файла в режиме чтения.
  4. Чтение файла до тех пор, пока не достигнут конец файла: — fgets(buf, BUFSIZ, f) — считывание строки из файла в массив buf.
  5. Проверка условия для вывода строки: — ( p = strpbrk(buf,0123456789) ) — поиск первого двузначного числа в строке; — isdigit(*(p+1)) — проверка следующего за найденным числом символа на цифру; — ! isdigit(*(p+2)) — проверка следующего после следующего за найденным числом символа на нецифру.
  6. Вывод строки, удовлетворяющей условию.
  7. Закрытие файла.
  8. Возврат 0, чтобы показать, что программа успешно завершилась.

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


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

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

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