Таким образом, для проекта класса мне нужно создать программу калькулятора, которая получает данные из текстового файла formula.txt
, который содержит следующие формулы:
'15;
10 + 3 + 0 + 25;'
Когда программа запускается, она должна рассчитать и распечатать результаты формул с разрывом строки следующим образом:
15
38
Однако каждый раз, когда я запускаюПрограмма дает следующий результат:
15
38
25
Я обработал свой код и не смог найти проблему.Любая помощь будет оценена.По коду вы найдете ниже.
#include <iostream>
using namespace std;
int main ()
{
double input; //initialize input variable
char sign; //intialize sign character
double calc = 0; //initial calculation value set to 0
bool add= true; // add to use whether to add or not
bool cont = true; // boolean for continuing loop
while (cont) //loop only continues while cont is true
{
cin >> input; //take in input
if (add) //if add is true
{
calc = calc + input; // adds the input to calc
}
else //if add is false
{
calc = calc - input; //subtracts input from calc
}
cin >> sign; //take in sign
if (sign == '+') //if sign is '+'
{
add = true; //add is true
}
else if (sign == '-') //if sign is '-'
{
add = false; //add is false
}
else if (sign == ';') //if sign is ';'
{
cout << calc << endl; //outputs calc to console
calc = 0;
}
if (cin.fail()) // if cin fails
{
cont = false; //continue is set to false
}
}
return 0;
}