Я создаю программу чековой книжки, которая считывает входные данные из файла и форматирует их в стиле чековой книжки с итогом, напечатанным в конце.Как и чековая книжка, депозит добавляется к итоговому значению, а транзакция вычитается из него.
Все входные данные, считанные из файла, являются строковыми, и моя проблема в том, что я не могу понять, как вызватьсумма транзакции удваивается, а затем складывается / вычитается соответственно.Я знаю, что моя ошибка заключается в том, как я пытаюсь добавить итоги транзакции, но я не уверен, что делать.
Я попытался удвоить строку (метод stod (количество)), но не могу понять.
Содержимое файла, с которого я читаю:
deposit:August 5:-:155
10:Sept 15:Taco Bell:10.25
11:Nov 23:Wal Mart:19.95
deposit:Dec 10:-:100
Вот мой код:
#include <iostream>
#include <fstream>
#include <iomanip>
#include <string>
using namespace std;
int main()
{
string fileName;
cout << "Please enter name of file to be read: ";
cin >> fileName;
ifstream in(fileName);
if(!in.good())
{
cerr << "Unable to open " << fileName << endl;
exit(1);
}
double total = 0;
while(!in.eof())
{
string trans;
getline(in,trans, ':');
cout << left << setw(15) << trans;
string date;
getline(in, date, ':');
cout << setw(15) << date;
string name;
getline(in, name, ':');
cout << setw(15) << name;
string symbol;
cout << right << "$";
string amount;
getline(in, amount);
double total = stod(amount);
cout << right << setw(10) << total << endl;
if(trans == "deposit")
{
double sum += total;
}
else
{
double sum -= total;
}
cout << sum << endl;
}
system("pause");
return 0;
}