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