Посчитать выражения в одном файле и записать результаты в другой - C (СИ)
Формулировка задачи:
в файле записано несколько примеров
2+2
3/1
4*2
надо считать
выполнить их
и вывести результаты в другой файл
Можете написать код? Спасибо
Решение задачи: «Посчитать выражения в одном файле и записать результаты в другой»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> int main(void) { FILE *fout, *fin; int number1, number2, result; char operation; char str[BUFSIZ]; fin = fopen("D:\\1.txt", "r"); if (!fin) return 1; fout = fopen("D:\\2.txt", "w"); if (!fout) return 1; while (!feof(fin)) { if (*fgets(str, BUFSIZ, fin) == '\n') break; if (sscanf(str, "%d%c%d", &number1, &operation, &number2) == 3) { switch (operation) { case '+': fprintf(fout, "%d\n", number1 + number2); break; case '-': fprintf(fout, "%d\n", number1 - number2); break; case '*': fprintf(fout, "%d\n", number1 * number2); break; case '/': fprintf(fout, "%f\n", (double)number1 / (double)number2); break; } } } fclose(fin); fclose(fout); return 0; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
- Объявляются переменные: файловые указатели fin и fout, целочисленные переменные number1 и number2, переменная operation типа char и строковая переменная str
- Открывается файл 1.txt для чтения и файл 2.txt для записи
- Проверяется корректность открытия файлов
- Если файлы открыты, то начинается цикл while, который выполняется до тех пор, пока не достигнут конец файла 1.txt
- Внутри цикла считывается строка из файла 1.txt
- Если считанная строка пустая (конец строки), то цикл прерывается
- Если строка не пустая, то с помощью функции sscanf из нее считываются три числа и операция
- Если считывание прошло успешно (то есть в строке были числа и операция), то выполняется операция над числами и результат записывается в файл 2.txt
- Если в процессе выполнения операции произошло деление на ноль, то программа возвращает ошибку
- После окончания цикла, файлы закрываются
- Программа возвращает 0, если все прошло успешно, иначе возвращается 1
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д