Работа с файлами, программа ничего не выводит - 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;  
}

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

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

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


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

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

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