创建从文件读取输入的老式支票簿程序

时间:2019-04-20 16:43:28

标签: visual-c++

我正在创建一个支票簿程序,该程序从文件中读取输入,并以支票簿样式设置格式,并在最后打印总内容。就像支票簿一样,存款会加到总额中,而交易会从中减去。

从文件中读取的所有输入都是字符串,而我的问题是我无法弄清楚如何将交易金额称为两倍,然后相应地对其进行加减。我知道我的错误在于我要如何添加交易总额,但是我不确定该怎么做。

我已经尝试过将字符串加倍(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;

}

0 个答案:

没有答案