Считать текст из файла и вывести строки, которые содержат двузначные числа - C (СИ)
Формулировка задачи:
Помогите кто-нибудь с программой. Вроде все работает, только кроме двузначных выводит и трехзначные и тд... Как это исправить???
#include "stdafx.h" #include <string.h> #include <stdio.h> #include <ctype.h> void Two(char* str) { FILE* f; char word [256]; f = fopen(str, "r"); if(f == NULL) printf("File not found"); while(!feof(f)) { fscanf(f, "%s", word); if(strlen(word) >= 2) { for(unsigned int i = 0; i < strlen(word); i++) { if(isdigit(word[i]) && isdigit(word[i+1])) printf("%s\n", word); } } } } int main() { Two("text.txt"); return 0; }
Решение задачи: «Считать текст из файла и вывести строки, которые содержат двузначные числа»
textual
Листинг программы
#include <string.h> #include <stdio.h> #include <ctype.h> void Two(char* str) { FILE* f; char word [256]; size_t i, len; f = fopen(str, "r"); if(f == NULL) printf("File not found"); while(!feof(f) && fscanf(f, "%s", word)) { len = strlen(word); for(i = 0; len > 1 && i < len - 2; i++) if (isdigit(word[i]) && isdigit(word[i+1]) && !isdigit(word[i+2])) printf("%s\n", word); if (len >= 2 && isdigit(word[len-2]) && isdigit(word[len-1]) && (len == 2 ? 1 : !isdigit(word[len-3]))) printf("%s\n", word); } fclose(f); } int main(void) { Two("input.txt"); return 0; }
Объяснение кода листинга программы
В этом коде используется функция Two
, которая принимает в качестве аргумента строку, содержащую путь к файлу.
- Сначала открывается файл для чтения с помощью функции
fopen
. - Если файл не может быть открыт, выводится сообщение об ошибке.
- Затем используется цикл
while
, который продолжается до тех пор, пока не достигнут конец файла и не прочитана строка. - Внутри цикла используется еще один цикл
for
, который ищет двузначные числа в строке. - Если два символа являются цифрами, а следующий за ними символ не является цифрой, то это двузначное число, и строка выводится на экран.
- Если в строке есть две цифры в конце, а третий символ не является цифрой, то это также двузначное число, и строка выводится на экран.
- В конце функция
fclose
закрывает файл. - В функции
main
вызывается функцияTwo
с аргументомinput.txt
. - Возвращается 0, чтобы указать, что программа успешно завершилась.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д