Работа с файлами, программа ничего не выводит - C (СИ)

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

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

Вот программа, я не пониvаю как работает она с файлом. я запускаю ее, она как будто закончила работу и ничего не выводит. файл 123 находится на диске D. Может я что-то не так делаю? помогите пожалуйста разобраться
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4. { FILE *f;
  5. char txt[20][10];
  6. int j=0,i;
  7. f=fopen("D:\123.txt","r");
  8. fgets(txt[i],80,f);
  9. while (feof(f))
  10. {
  11. for (j=0; j<i; j++)
  12. if (((j=='+') || (j=='-') || (j=='*') || (j=='/')) && ((j+1=='+')||(j+1=='-')||(j+1=='*')||(j+1=='/')))
  13. {
  14. i++;
  15. printf("Warnings %d, number %d \n",i,j);
  16. }
  17. }
  18. fclose(f);
  19. }

Решение задачи: «Работа с файлами, программа ничего не выводит»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdbool.h>
  4.  
  5. bool is_sign(char c)
  6. {
  7.     static const char *signs = "+-*/";
  8.     return strchr(signs, c);
  9. }
  10.  
  11. int main(void)
  12. {
  13.     char buf[BUFSIZ];
  14.     FILE *file;
  15.     file = fopen("123.txt","r");
  16.  
  17.     for (int line = 0; fgets(buf, BUFSIZ, file); line++)
  18.          for (int pos = 0, len = strlen(buf) - 1; pos < len; pos++)
  19.              if (is_sign(buf[pos]) && is_sign(buf[pos + 1])) {
  20.                  fprintf(stderr, "Error line: %d pos: %d\n", line + 1, pos + 1);
  21.                  pos++;
  22.              }
  23.              
  24.      fclose(file);
  25.      return 0;  
  26. }

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

  1. Включаются необходимые заголовочные файлы
  2. Определяется функция is_sign, которая проверяет является ли символ знаком
  3. Задается входной параметр функции - символ c
  4. В функции используется статическое определение строки знаков, для которых нужно проверить символ на принадлежность
  5. В функции используется функция strchr для поиска символа в строке знаков
  6. В функции main открывается файл 123.txt для чтения
  7. В цикле считывается каждая строка из файла в буфер buf
  8. В цикле для каждой строки проверяется каждый символ на наличие знака
  9. Если найдены два знака, выводится сообщение об ошибке с указанием номера строки и позиции символа
  10. В конце программы закрывается файл и возвращается 0, что означает успешное выполнение программы

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


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

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

12   голосов , оценка 4.333 из 5

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

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

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