void searchFlight(cust flights[] ,int row)
{
clrscr();
cout << "Search for the flight you are looking for.\n";
string airport;
cout << "Enter Departing Flight : ";
cin >> airport; //error
for (int r=0;r<row;r++)
{
if (strnicmp(airport, flights[r].airport[20], strlen(airport) ==0) //error
{
clrscr();
cout << flights[r].name[20] <<endl;
cout << flights[r].airport[20] <<endl;
cout << flights[r].destination[20] <<endl;
cout << flights[r].ticket <<endl;
cout << flights[r].passangers <<endl;
cout << flights[r].opCost <<endl;
cout << flights[r].income <<endl;
cout << flights[r].netProfit <<endl;;
pressKey();
}
}
pressKey();
}
对于cin错误: 错误C2678:二进制'&gt;&gt;' :找不到哪个运算符带有'std :: istream'类型的左手操作数(或者没有可接受的转换)
对于strnicmp错误: 错误C2664:'strlen':无法将参数1从'std :: string'转换为'const char *'
我已经搜索了此问题的解决方案,但无法修复它。如果这里有类似的帖子可以解决我的问题,请道歉。
答案 0 :(得分:1)
您是否包含以下内容:
<fstream>
<istream>
<iostream>
<string>
我很确定你忘记了<string>
这是我运行的测试代码,它运行完美!
#include <string>
#include <iostream>
using namespace std;
int main(int, char**)
{
string foo;
cin >> foo;
cout << foo;
}
答案 1 :(得分:1)
对于cin错误:错误C2678:二进制'&gt;&gt;' :找不到哪个运算符带有'std :: istream'类型的左手操作数(或者没有可接受的转换)
将#include <string>
添加到您的CPP文件中。
对于strnicmp错误:错误C2664:'strlen':无法将参数1从'std :: string'转换为'const char *'
确认您的CPP文件有#include <cstring>
,并将来电替换为:
strnicmp(airport.c_str(), flights[r].airport[20], strlen(airport.c_str()) ==0
。
我怀疑flights[r].airport[20]
也不正确,但我不知道,因为你没有发布完整的程序。
如果cust::airport
被声明为std::string airport;
,那么您需要flights[r].airport.c_str()
。
如果cust::airport
被声明为char airport[20];
,那么您需要flights[r].airport
。