初始化变量时遇到问题 是我编写的一个代码,用来学习C++中的文件。我可以正确地读取和写入所有内容,但我无法让显示器显示正确的值,因为当我尝试初始化while循环中的总变量时,它会被忽略 #include <iostream> #include <iomanip> #include <fstream> using namespace std; int main() { int customerNumber; double beginningBalance, purchase, payments, financeCharge, endingBalance; double beginningTotal, purchaseTotal, paymentsTotal, financeChargeTotal, endingTotal; ifstream inputFile; ofstream outputFile; inputFile.open("BeginningBalance.dat"); outputFile.open("EndingBalance.dat"); cout<<"Cust No | Beginning Bal | Finance Charge | Purchases | Payments | Ending Balance"<<endl; while (inputFile >> customerNumber) { outputFile <<customerNumber<<endl; inputFile >> beginningBalance; inputFile >> purchase; inputFile >> payments; financeCharge = beginningBalance * .01; endingBlanance= beginningBalance + purchase + financeCharge - payments; //*********************************************** //This is where I am having trouble initializing variables. //*********************************************** beginningTotal += beginningBalance; //beginningTotal not being intitialized. financeChargeTotal += financeCharge; purchaseTotal += purchase; paymentsTotal += payments; endingTotal += endingBalance; outputFile <<fixed<<setprecision(2)<<endingBalance<<endl; cout<<setw(5)<<customerNumber<<fixed<<setprecision(2)<<" "<<beginningBalance<<" "<<financeCharge<<" "<<purchase<<" "<<payments<<" "<<endingBalance<<endl; } cout<<"Total: "<<fixed<<setprecesion(2)<<beginningTotal<<" "<<financeChargeTotal; system ("PAUSE"); return 0; } #包括 #包括 #包括 使用名称空间std; int main() { 国际客户编号; 双倍期初余额、购买、付款、财务费用、期末余额; 双倍起始总额、采购总额、付款总额、财务费用总额、结束总额; ifstream输入文件; 流输出文件; open(“BeginningBalance.dat”); outputFile.open(“EndingBalance.dat”); 现金支付; 财务费用=期初余额*.01; endingBlanance=开始余额+购买+财务费用-付款; //*********************************************** //这就是我在初始化变量时遇到的问题。 //*********************************************** beginningTotal+=beginningBalance;//未初始化beginningTotal。 财务费用总额+=财务费用; purchaseTotal+=采购; paymentsTotal+=付款; endingTotal+=endingBalance; outputFile

初始化变量时遇到问题 是我编写的一个代码,用来学习C++中的文件。我可以正确地读取和写入所有内容,但我无法让显示器显示正确的值,因为当我尝试初始化while循环中的总变量时,它会被忽略 #include <iostream> #include <iomanip> #include <fstream> using namespace std; int main() { int customerNumber; double beginningBalance, purchase, payments, financeCharge, endingBalance; double beginningTotal, purchaseTotal, paymentsTotal, financeChargeTotal, endingTotal; ifstream inputFile; ofstream outputFile; inputFile.open("BeginningBalance.dat"); outputFile.open("EndingBalance.dat"); cout<<"Cust No | Beginning Bal | Finance Charge | Purchases | Payments | Ending Balance"<<endl; while (inputFile >> customerNumber) { outputFile <<customerNumber<<endl; inputFile >> beginningBalance; inputFile >> purchase; inputFile >> payments; financeCharge = beginningBalance * .01; endingBlanance= beginningBalance + purchase + financeCharge - payments; //*********************************************** //This is where I am having trouble initializing variables. //*********************************************** beginningTotal += beginningBalance; //beginningTotal not being intitialized. financeChargeTotal += financeCharge; purchaseTotal += purchase; paymentsTotal += payments; endingTotal += endingBalance; outputFile <<fixed<<setprecision(2)<<endingBalance<<endl; cout<<setw(5)<<customerNumber<<fixed<<setprecision(2)<<" "<<beginningBalance<<" "<<financeCharge<<" "<<purchase<<" "<<payments<<" "<<endingBalance<<endl; } cout<<"Total: "<<fixed<<setprecesion(2)<<beginningTotal<<" "<<financeChargeTotal; system ("PAUSE"); return 0; } #包括 #包括 #包括 使用名称空间std; int main() { 国际客户编号; 双倍期初余额、购买、付款、财务费用、期末余额; 双倍起始总额、采购总额、付款总额、财务费用总额、结束总额; ifstream输入文件; 流输出文件; open(“BeginningBalance.dat”); outputFile.open(“EndingBalance.dat”); 现金支付; 财务费用=期初余额*.01; endingBlanance=开始余额+购买+财务费用-付款; //*********************************************** //这就是我在初始化变量时遇到的问题。 //*********************************************** beginningTotal+=beginningBalance;//未初始化beginningTotal。 财务费用总额+=财务费用; purchaseTotal+=采购; paymentsTotal+=付款; endingTotal+=endingBalance; outputFile,c++,C++,首先没有初始化变量,因此它们没有任何初始值。然后向这些变量添加一些内容,结果是未定义的(读取垃圾) 考虑这样声明它们: double beginningTotal = 0, purchaseTotal = 0, paymentsTotal = 0, financeChargeTotal = 0, endingTotal = 0; …甚至更好-为他们创建一些结构 beginningTotal += beginningBalance 意思和 beginningTotal = beginningT

首先没有初始化变量,因此它们没有任何初始值。然后向这些变量添加一些内容,结果是未定义的(读取垃圾)

考虑这样声明它们:

double beginningTotal = 0, purchaseTotal = 0, paymentsTotal = 0, financeChargeTotal = 0, endingTotal = 0;
…甚至更好-为他们创建一些结构

beginningTotal += beginningBalance
意思和

beginningTotal = beginningTotal + beginningBalance
beginningTotal在循环之前未初始化,因此第一次循环时

beginningTotal = _indeterminant_value_ + beginningBalance
所以beginningTotal总是一个不确定的值。请不要使用未初始化的变量来修复它

double beginningTotal = 0.0;

+1.根据经验,您几乎应该总是在声明局部变量时初始化它们。在声明时初始化变量通常是一个好习惯。回答得好。