Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
zago-vlad
13 / 8 / 1
Регистрация: 12.01.2010
Сообщений: 106
#1

Считавание и выполнение математического выражения из файла - C++

07.10.2011, 19:51. Просмотров 588. Ответов 1
Метки нет (Все метки)

Всем привет!
Нужно сделать программу, которая бы считывала математическое выражение из файла input.txt, и записывала результат в output.txt

Вот что я сделал:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream.h>
#include <stdio.h>
 
int main()
{
    FILE * inputfile;
    FILE * outputfile;
    inputfile = fopen("input.txt","r");
    char inputstring[256];
    fgets(inputstring,256,inputfile);
    fclose(inputfile);
    int inputnumber;
    inputnumber = atoi(inputstring);
    outputfile = fopen("output.txt","w");
    fprintf(outputfile,"%i",inputnumber);
    fclose(outputfile);
    return 0;
}
Но эта прога только считывает выражение из файла в char, затем конвертирует его в int и записывает результат в другой файл. По идеи, если поместить выражение полностью в int, то оно должно выполниться, но atoi() обрезает всю строку после любого математического знака
Т.е., если в input.txt поставить 2+3, то в output.txt получим 2.

Как мне заставить эту прогу работать как надо, или, может быть, у Вас есть альтернативный вариант?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2011, 19:51     Считавание и выполнение математического выражения из файла
Посмотрите здесь:
C++ Решение математического выражения на с++
C++ Синтаксис математического выражения С++
Запись математического выражения C++
Запись математического выражения C++
Поиск результатов математического выражения C++
C++ Вычислить значение математического выражения
C++ Программа расчета математического выражения
Функция вычисления таблицы значений математического выражения C++
C++ Разбор математического выражения - выделить пробелами каждую операцию
Посчитать значение следующего математического выражения, x вводится с клавиатуры C++
Рекурсивный расчёт математического выражения со скобками (рекурсивную функцию оформить в виде потока) C++
При выполнение exe файла быстро схлопывается окно терминала C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xAtom
914 / 739 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
08.10.2011, 01:57     Считавание и выполнение математического выражения из файла #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <stdlib.h>
 
int main(){
   FILE* fp = fopen("input.txt", "r");
   if(! fp)
        exit(1);
   char a[10], b[10], ch;
   int  num;
   if(fscanf(fp, "%[^+-/*]%c%[0-9-]", a, &ch, b) == 3) {
        switch(ch) {
            case '+': num = atoi(a) + atoi(b); break;
            case '-': num = atoi(a) - atoi(b); break;
            case '*': num = atoi(a) * atoi(b); break;
            case '/': num = atoi(a) / atoi(b); break;
        }
        fp = freopen("output.txt", "w", fp);
        fprintf(fp, "%d", num);
   }
   fclose(fp);
   return 0;
}
Yandex
Объявления
08.10.2011, 01:57     Считавание и выполнение математического выражения из файла
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru