Посчитать выражения в одном файле и записать результаты в другой - 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;
}

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

  1. Включаются необходимые заголовочные файлы
  2. Объявляются переменные: файловые указатели fin и fout, целочисленные переменные number1 и number2, переменная operation типа char и строковая переменная str
  3. Открывается файл 1.txt для чтения и файл 2.txt для записи
  4. Проверяется корректность открытия файлов
  5. Если файлы открыты, то начинается цикл while, который выполняется до тех пор, пока не достигнут конец файла 1.txt
  6. Внутри цикла считывается строка из файла 1.txt
  7. Если считанная строка пустая (конец строки), то цикл прерывается
  8. Если строка не пустая, то с помощью функции sscanf из нее считываются три числа и операция
  9. Если считывание прошло успешно (то есть в строке были числа и операция), то выполняется операция над числами и результат записывается в файл 2.txt
  10. Если в процессе выполнения операции произошло деление на ноль, то программа возвращает ошибку
  11. После окончания цикла, файлы закрываются
  12. Программа возвращает 0, если все прошло успешно, иначе возвращается 1

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

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