虽然分不多,但真心请教,关于C++程序的一个纠错问题。
错误提示:
error C2676: binary '==' : 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' does not define this operator or a conversion to a type acceptable to the predefined
operator
程序如下。
// 计算一间房子墙壁面积以及所需油漆的量 P70
#include <iostream>
#include <iomanip>
#include<string>
using namespace std;
int main()
{
float l,w,h;//房间的长,宽,高
float Sdw;//门和窗的总面积
float totalS ;//总共面积
float printS;//需要刷漆的面积
string answer1,answer2;
float costPer,costTol;//定义每平方英尺消耗量,及总共消耗量。
do
{
do
{
cout<<"\n请输入房间的长度(平方英寸):";//要求用户输入房间的基本信息
cin>>l;cin.ignore();
cout<<"\n请输入房间的宽度(平方英寸): ";
cin>>w;cin.ignore();
cout<<"\n请输入房间的高度(平方英寸): ";
cin>>h;cin.ignore();
cout<<"\n请输入房间的门和窗的总面积,即不需要刷漆的面积(平方英寸): ";
cin>>Sdw;
cin.ignore();//删除回车
//从用户处获取每平方英尺消耗油漆的信息
cout<<"\n每平方英尺消耗多少加仑的油漆?请在这输入 "<<endl;
cin>>costPer;//读取数值
cin.ignore();//删除回车
cout<<"\n您的房间长,宽,高分别是:"<<l<<","<<w<<","<<h<<"."<<endl;
cout<<"不需要刷漆的面积是:"<<Sdw;
cout<<"\n每平方英尺消耗"<<costPer<<"加仑的油漆"<<endl;
cout<<"请确认,以上信息对吗? yes/no ";
getline(cin,answer1);//确认信息
if((answer1 == 'no')||(answer1 == 'NO'))
cout<<"/n请重新输入"<<endl;
}while(answer1=='n'||answer1=='N');
totalS=l*w*h;//计算出房间的总面积
printS=totalS-Sdw;//计算出需要刷漆的面积
cout<<"\n房间总共的面积是:"<<totalS<<endl;
cout<<"\n需要刷漆的面积是:"<<printS<<endl;
costTol=totalS*costPer;//计算出总共消耗油漆的量。
cout.precision(2);
cout.setf(ios::fixed);
cout<<"\n您的房间总共面积是:"<<totalS<<"需要刷漆的面积是:"<<printS<<endl;
cout<<"\n总共需要消耗油漆 "<<costTol<<"加伦。"<<endl;
cout<<"需要重新输入并计算吗? y/n ";
getline(cin,answer2);
}while(answer2=='y'||answer2=='Y');
return 0;
}
[解决办法]
answer1 == "no" //""才是字符串 全部错误都是这个 检查一下 学会用编译器找错误
[解决办法]
楼上正解,字符用单引号,字符串用双引号。
[解决办法]
string answer1,answer2;
字符串,用双引号。
[解决办法]