我的数据文件包含以下要读取的数字
/*
111
100.00
200.00
50.00
222
200.00
300.00
100
*/
但是在while循环读入customerNumber为100时应该是111,它也会得到其他所有错误的值。比如startsBalance读数为
//-9255963134931783000000000000000000000000.00
并且其他所有内容似乎都在读取相同的值。我只是在学习文件,所以任何帮助都会非常感激。
#include <iostream>
#include <iomanip>
#include <fstream>
using namespace std;
int main()
{
int customerNumber;
double beginningBalance, purchase, payments, financeCharge, endingBalance;
ifstream inputFile;
ofstream outputFile;
inputFile.open("BeginningBalance.dat");
cout<<"Cust No | Beginning Bal | Finance Charge | Purchases | Payments | Ending Balance"<<endl;
while (inputFile >> customerNumber);
{
inputFile >> beginningBalance;
inputFile >> purchase;
inputFile >> payments;
financeCharge = beginningBalance * .01;
endingBalance = beginningBalance + purchase + financeCharge - payments;
cout<<setw(5)<<customerNumber<<fixed<<setprecision(2)<<" "<<beginningBalance<<" "<<financeCharge<<" "<<purchase<<" "<<payments<<" "<<endingBalance<<endl;
}
system ("PAUSE");
return 0;
}
答案 0 :(得分:6)
尝试在while循环条件之后删除分号,看看是否修复了它。
所以改变
while (inputFile >> customerNumber);
到
while (inputFile >> customerNumber)
现在的样子,除非从文件中删除所有数据,否则它什么也没做,然后执行{ ... }
内的内容,并且文件读取你在那里做的事情已经在EOF,所以他们不工作。
答案 1 :(得分:0)
文件开头的/ *破坏了您的数据。在您阅读客户编号之前,请先读取两个垃圾字符,然后删除/ *或帐户。
在你需要移除的while循环语句之后,你还有一个分号。