帮助未定义和多个字符成为常量
Help undefined and to many characters to be a constant
我不明白我做错了什么。我是一个新手,不明白为什么trimtype是未定义的,而"Vinyl interior trim"有太多的字符,不能成为常量。请帮助
#include "stdafx.h"
#include <iostream>
#include <string>
#include <iomanip>
#include <cctype>
using namespace std;
void getIntroduction();
void getBasePrice(double& BaseCost);
void getEngineCost(double& EngineCost, string& EngineType);
void getTrimCost(double& TrimCost, string& TrimType);
void getRadioCost(double& RadioCost, string& RadioType);
void calcTotalCost(double& BaseCost, double& EngineCost, double& TrimCost, double& RadioCost, double& ShippingCost, double& DealerCost);
int _tmain(int argc, _TCHAR* argv[])
{
double ShippingCostOut;
double DealerCostOut;
double BaseCostOut;
double EngineCostOut;
double TrimCostOut;
double RadioCostOut;
double TotalCostOut;
string EngineTypeOut;
string TrimTypeOut;
string RadioTypeOut;
string ExitKey;
ShippingCostOut = 500.00;
DealerCostOut = 175.00;
cout << endl;
cout << endl;
getIntroduction();
cout <<endl;
cout <<endl;
cout << " Your selections will determine final Price" << endl;
cout << endl;
getBasePrice(BaseCostOut);
cout<< endl;
getEngineCost(EngineCostOut,EngineTypeOut);
cout<< endl;
getTrimCost(TrimCostOut,TrimTypeOut);
cout<< endl;
getRadioCost(RadioCostOut,RadioTypeOut);
cout<< endl;
cout << endl;
TotalCostOut = ShippingCostOut + DealerCostOut + BaseCostOut + EngineCostOut + TrimCostOut + RadioCostOut;
system("CLS");
cout << " Your selections result in:" << endl;
cout << " Base Cost - $" << BaseCostOut << endl;
cout << endl;
cout << " " << EngineTypeOut << " - $" << EngineCostOut << endl;
cout << endl;
cout << " " << TrimTypeOut << " - $" << TrimCostOut << endl;
cout << endl;
cout << " " << RadioTypeOut << " - $" << RadioCostOut << endl;
cout << endl;
cout << " Shipping Cost - $" << ShippingCostOut << endl;
cout << " Dealer Cost - $" << DealerCostOut << endl;
cout << endl;
cout << " The total cost of the vehicle is: $" << TotalCostOut << endl;
cout << endl;
cout << "Enter any key and hit Enter to end program." << endl;
cin >> ExitKey;
return 0;
}
void getIntroduction ()
{
cout << "Universal Motors New Car Price Calculator" << endl;
cout << " You will select your Options" << endl;
cout << endl;
cout << " The shipping cost - $500.00"<<endl;
cout << " The dealer cost - $175.00"<<endl;
cout<< endl;
}
void getBasePrice(double& BaseCost)
{
char BaseCheck;
BaseCheck = 'A';
cin.clear();
cin.sync();
do
{
BaseCheck = 'A';
cout << endl;
cout << " Please enter the base price for the new car: " << endl;
cout << " Please enter Base Price in this format xxxxx.xx (x is a number):" <<endl;
cout << endl;
cout << "$ ";
cin >> BaseCost;
cout << BaseCost * 2;
} while (BaseCheck == 'S');
}
void getEngineCost(double& EngineCost, string& EngineType)
{
char EngineLetter;
do
{
cout << endl;
cout << " Please choose your engine type: "<< endl;
cout<< endl;
cout << " S - 6 cylinder engine - $150.00"<<endl;
cout << " E - 8 cylinder engine - $475.00"<<endl;
cout << " D - Diesel engine - $750.00"<<endl;
cout << endl;
cout << " Please enter your engine type: ";
cin >> EngineLetter;
switch (EngineLetter)
{
case 'S':
EngineCost = 150.00;
EngineType = "6 cylinder engine";
break;
case 'E':
EngineCost = 475.00;
EngineType = "8 cylinder engine";
break;
case 'D':
EngineCost= 750.00;
EngineType = "Diesel engine";
break;
}
void getTrimCost(double& TrimCost, string& TrimType);
{
char TrimChoice;
do
{
cout << endl;
cout << "Please choose your Trim Type:" << endl;
cout<< endl;
cout << " V - Vinyl interior trim - $50.00"<<endl;
cout << " C - Cloth interior trim - $225.00"<<endl;
cout << " L - Leather interior trim - $800.00"<<endl;
cout << endl;
cout << " Please enter your Trim: ";
cin >> TrimChoice;
switch (TrimChoice)
{
case 'V':
double TrimCost = 50.00;
TrimType = 'Vinyl interior trim';
break;
case 'C':
TrimCost = 225.00;
TrimType = "Cloth interior trim";
break;
case 'L':
TrimCost= 800.00;
TrimType = "Leather interior trim";
break;
}
void getRadioCost(double& RadioCost, string& RadioType);
{
char RadioChoice;
do
{
cout << endl;
cout << "Please choose your Radio:" << endl;
cout<< endl;
cout << " C - AM/FM Radio - $100.00" << endl;
cout << " P - CD/DVD - $400.00" << endl;
cout << endl;
cout << " Enter Selection Please: ";
cin >> RadioChoice;
if (RadioChoice == 'C')
{
double RadioCost = 100.00;
RadioType = "AM/FM Radio";
}
else
if (RadioChoice == 'P')
{
double RadioCost = 400.00;
RadioType = "CD/DVD";
}
}
问题可能出在这一行:
TrimType = 'Vinyl interior trim';
在C和c++中,单引号('
)表示char
字面值,即单个字符。但是你的TrimType不是char
,它是string
,所以你必须使用双引号("
):
TrimType = "Vinyl interior trim";
相关文章:
- 如何循环访问常量字符**?
- constexpr 函数获取常量字符*
- 如何计算常量字符**中的总字符数?
- QDial:如何将 int 值传递给需要常量字符*的 Qfile?
- 为什么 std::string_view 比常量字符*快?
- 函数签名与调用的函数不匹配,常量字符[]和字符*之间的区别?
- 在编译时将常量字符* 转换为常量 char_type*
- 将字符串数组传递给接受常量字符**的函数
- 错误:请求从"常量字符 [5]"转换为非标量类型"字符串"
- 字符串强制转换为常量字符*
- 使用常量字符*时退出代码 139
- 为什么我可以隐式地将字符*转换为常量字符*,但不能将无符号字符*
- 无法在声明时使用初始值设定项列表初始化常量字符*/字符串数组的向量
- 无法<string>从"常量字符 []"转换为<类名>
- 初始化常量字符* 数组
- 常量字符*的性质是什么?
- C++ 获取向量中常量字符* [ ] 的长度
- 无法将参数 1 从 WCHAR 转换为常量字符 *
- 如何在 c++ 中将向量转换为<string>常量字符* const*?
- C++将常量字符* 指针数组传递给对象