我是一名学生,上周刚刚开始学习C ++,所以这个问题可能很低,但我无法理解。
我搜索了一下但找不到任何结果,或者我正在寻找错误的东西。
有两个cin部分。一个接受循环外的int,另一个接受循环内的字符串。
我收到编译错误,说“”错误没有操作符匹配这些命令“即使我刚刚使用它们5行之前。
帮助?
#include <fstream>
#include <iostream>
using namespace std;
int main()
{
// variable declaration
const double payIncrease = 7.6;
string employeeName;
double initialSalary;
double backPay;
double employeeAnnualSalary;
double employeeMonthlySalary;
int numEmployees;
// streams of information
ofstream outStream;
outStream.open("employeeRecords.txt");
// console io's
cout<<"Enter how many employees you have:";
cin>>numEmployees;
for(int i = 0; i <numEmployees;i++)
{
cout<<"What is Employee number: "<<i<<"'s name:";
cin>>employeeName;
cout<<"How much does that employee earn now: ";
cin>>initialSalary;
}
outStream <<"annual salary was: " << numEmployees;
outStream.close();
return 0;
}
答案 0 :(得分:5)
这是一个实际编译的版本。你可以自己弄清楚你错过了什么; - )
#include <iostream>
#include <string>
using namespace std;
int main()
{
cout << "Enter how many employees you have:";
int numEmployees = 0;
cin >> numEmployees;
for(int i = 0; i < numEmployees; ++i)
{
cout << "What is Employee number: " << i << "'s name:";
string employeeName;
cin >> employeeName;
}
}
答案 1 :(得分:2)
总侥幸。
我只是把
#include<string>
在顶部。
我不知道控制台无法处理字符串
答案 2 :(得分:0)
im getting a compile error saying ""Error no operator matches these commands" even though i just used them 5 lines ago.
这听起来像命名空间问题。
欢迎来到精彩的编程世界。 ;)
答案 3 :(得分:0)
我收到编译错误说
Error no operator matches these commands
,即使我刚刚使用它们5行之前。
如果这是指您发布的剪辑,那么您错了。与所有其他函数一样,运算符可以在C ++中重载。这意味着可以使用相同名称的几个函数,只要它们采用不同的参数(或者是const
或不是成员函数)。
变量名numEmployees
在我看来好像是指 号 ,而employeeName
可能是指 字符串 即可。因此,这将调用 operator>>()
的两个不同重载 来输入这些变量。
由于我在这里省略的原因,在标题operator>>()
中定义了<string>
重载到字符串中,而内置类型(int
等)的重载是在<istream>
中定义,您通常可以通过<iostream>
获得。
所以,鉴于你给我们的信息很少,这是一个很长的镜头,但 我想你错过了#include <string>
。