程序在带有新行"n"的 cout 上崩溃
Program crashing on cout with new line " "
这是我的主类,当程序到达主类中调用calcAndDisplay的部分时,它崩溃了。
#include <iostream>
#include <iostream>
#include <iomanip>
#include "Chap1227.h"
using namespace std;
//function prototypes
double getBonusRate(double rate);
void columnsDashes();
void endPgm();
int main() {
double rate = 0.0;
//filling array
int salesArray[10][4] = {{2400, 3500, 2000, 2750},
{1500, 7000, 1000, 2225},
{2600, 2450, 2100, 2999},
{2790, 2240, 2500, 2885},
{2100, 2600, 2300, 3000},
{6300, 7000, 8000, 5550},
{3300, 1850, 2950, 2100},
{2700, 5500, 6000, 7200},
{4700, 4800, 4900, 5100},
{2375, 3300, 2550, 1925}};
getBonusRate(rate);
columnsDashes();
//bonus object
Bonus myBonus;
myBonus.calcAndDisplay(salesArray, rate);
endPgm();
return 0;
}
// ***** getBonusRate function description *****
//
double getBonusRate(double rate)
{
//display console title to user
cout << "JM SALES BONUS CALCULATORnn";
//get bonus rate from user
cout << "Enter bonus rate in decimal form: ";
cin >> rate;
cout << "nn";
return rate;
}
// ***** columnsDashes function description *****
//
void columnsDashes()
{
//display column headings and dashes to user
cout << "Number Sales($) Bonus($)n";
cout << "------ -------- --------";
}
// ***** endPgm function description *****
//
void endPgm()
{
//EOP message
cout << "nnEnd of Program.";
}
这是包含calcAndDisplay的.h文件,它正在工作,但打印的所有数字都没有空格,所以我将/n添加到print语句中,从那以后它就崩溃了。我尝试删除/n,但它仍然崩溃。我不确定问题是什么。
#ifndef CHAP1227_H_
#define CHAP1227_H_
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
// ***** CLASS DEFINITION *****
class Bonus
{
public:
Bonus();
void calcAndDisplay(int salesArray[10][4], double rate);
private:
int totSales;
int grandTotSales;
double salesBonus;
double bonusGrandTot;
};
// ***** CLASS IMPLEMENTATION *****
//default constructor
Bonus::Bonus()
{
totSales = 0;
grandTotSales = 0;
salesBonus = 0.0;
bonusGrandTot = 0.0;
}
//calcAndDisplay function
//
void Bonus::calcAndDisplay(int salesArray[10][4], double rate)
{
for (int row = 0; row < 10; row += 1)
{
for (int column = 0; column < 4; column += 1)
{
totSales += salesArray[row][column];
}
cout << totSales + "n";
}
}
#endif /* CHAP1227_H_ */
我对你的说法持怀疑态度:
我尝试删除/n,但它仍然崩溃。
因为这正是问题所在。
您需要更改:
cout << totSales + "n";
自:
cout << totSales << "n";
如果不进行类型转换,则无法添加双精度型和字符串,但可以连接流。(请注意,您可以将双精度转换为字符串,但以上更直接(。
相关文章:
- 当回溯以零开始时,如何调试崩溃
- 请解释这句话(cout<<1+int((a<b)^((b-a)&1) )<<endl
- 内联映射初始化的动态atexit析构函数崩溃
- 执行函数时导致崩溃的变量
- std::cout.imbue()多重调用
- 程序崩溃并显示"std::out_of_range"错误
- CoInitialize()在单独的线程上崩溃而不返回
- 使用调试/崩溃报告将应用程序部署到客户端
- 如何在C++中用std::cout正确显示带十六进制的字符串文本
- 为什么在C的循环中使用printf的Rust代码不显示输出,而在C++的循环中显示std::cout
- 为什么所有C++编译器都会崩溃或挂起此代码
- 为什么lambda在clang上崩溃而不是在gcc上崩溃
- 为什么我应该在异常处理中使用std::cerr而不是std::cout
- 为什么我的多线程作业队列崩溃
- C++ Cout 在使用指针时崩溃
- 程序在带有新行"n"的 cout 上崩溃
- 在 std::cout 字符串上崩溃
- C++ 随机 COUT 语句导致程序在重载的"="运算符内崩溃
- Cout + Float,没有调试错误,在发布运行时崩溃
- Flex cout字符串崩溃