Работа с файлами, программа ничего не выводит - 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, что означает успешное выполнение программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д