Работа с файлами, программа ничего не выводит - C (СИ)
Формулировка задачи:
Вот программа, я не пониvаю как работает она с файлом. я запускаю ее, она как будто закончила работу и ничего не выводит. файл 123 находится на диске D. Может я что-то не так делаю? помогите пожалуйста разобраться
#include <stdio.h> #include <stdlib.h> int main() { FILE *f; char txt[20][10]; int j=0,i; f=fopen("D:\123.txt","r"); fgets(txt[i],80,f); while (feof(f)) { for (j=0; j<i; j++) if (((j=='+') || (j=='-') || (j=='*') || (j=='/')) && ((j+1=='+')||(j+1=='-')||(j+1=='*')||(j+1=='/'))) { i++; printf("Warnings %d, number %d \n",i,j); } } fclose(f); }
Решение задачи: «Работа с файлами, программа ничего не выводит»
textual
Листинг программы
#include <stdio.h> #include <string.h> #include <stdbool.h> bool is_sign(char c) { static const char *signs = "+-*/"; return strchr(signs, c); } int main(void) { char buf[BUFSIZ]; FILE *file; file = fopen("123.txt","r"); for (int line = 0; fgets(buf, BUFSIZ, file); line++) for (int pos = 0, len = strlen(buf) - 1; pos < len; pos++) if (is_sign(buf[pos]) && is_sign(buf[pos + 1])) { fprintf(stderr, "Error line: %d pos: %d\n", line + 1, pos + 1); pos++; } fclose(file); return 0; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
- Определяется функция is_sign, которая проверяет является ли символ знаком
- Задается входной параметр функции - символ c
- В функции используется статическое определение строки знаков, для которых нужно проверить символ на принадлежность
- В функции используется функция strchr для поиска символа в строке знаков
- В функции main открывается файл
123.txt
для чтения - В цикле считывается каждая строка из файла в буфер buf
- В цикле для каждой строки проверяется каждый символ на наличие знака
- Если найдены два знака, выводится сообщение об ошибке с указанием номера строки и позиции символа
- В конце программы закрывается файл и возвращается 0, что означает успешное выполнение программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д