我正在创建一个支票簿程序,该程序从文件中读取输入,并以支票簿样式设置格式,并在最后打印总内容。就像支票簿一样,存款会加到总额中,而交易会从中减去。
从文件中读取的所有输入都是字符串,而我的问题是我无法弄清楚如何将交易金额称为两倍,然后相应地对其进行加减。我知道我的错误在于我要如何添加交易总额,但是我不确定该怎么做。
我已经尝试过将字符串加倍(stod(amount))方法,但是我无法弄清楚。
我正在读取的文件的内容是:
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;
}