C++ c++,获得';“无操作员”&燃气轮机&燃气轮机&引用;匹配这些操作数';。对于读取文件的函数
我在这段代码中有一个错误:在“in>>点”中“>>”的while循环中C++ c++,获得';“无操作员”&燃气轮机&燃气轮机&引用;匹配这些操作数';。对于读取文件的函数,c++,C++,我在这段代码中有一个错误:在“in>>点”中“>>”的while循环中 我对C++仍然是新手,所以对理解这一点有帮助。 < p>你试图读到 const字符串。不是传递常量字符串点,而是传递字符串和点,作为字符串的可修改引用传递 >>点[计数器]中的线正在调用点上的操作员[],然后调用操作员>。但由于点是一个常量字符串,运算符[]返回一个常量字符&,不应读入该字符串。您希望它返回字符&,因此点必须是非常量。不要使用.eof()中的来控制循环读取值!(这是一个一般性建议,与您的问题没有直接关系)您的
<>我对C++仍然是新手,所以对理解这一点有帮助。 < p>你试图读到<代码> const字符串。不是传递
常量字符串点
,而是传递字符串和点
,作为字符串的可修改引用传递
>>点[计数器]中的线
正在调用点上的操作员[]
,然后调用操作员>
。但由于点
是一个常量字符串
,运算符[]
返回一个常量字符&
,不应读入该字符串。您希望它返回字符&
,因此点
必须是非常量。不要使用.eof()中的来控制循环读取值!(这是一个一般性建议,与您的问题没有直接关系)您的循环应该是这样的:for(;counter>point[counter];++counter){…}
。这不是您唯一的错误;相信我。您正在读取一个可能不存在的字符串索引槽。旁注:我想找到所有在(!in.eof())
期间教授的讲师/书籍,然后在明火上慢慢烘烤它们。你没有发布全部错误。很有可能它提到了您正试图使用的操作数,这将告诉我们它失败的确切原因。您的问题包含代码和您遇到的错误,但没有说明只有您自己才知道的事情:您正在尝试做什么?我们知道有错误,但告诉我们这应该做什么。
void FileRead(const int cap,const string point,int counter)
{
ifstream in;
in.open("sample_strings.txt"); //ifstream in; in.open("sample_data.txt");
if (in.fail())
cout<<"sample_data not opened correctly"<<endl;
while(!in.eof() && counter<cap)
{
in>>point[counter];
counter++;
}
in.close();
}
ifstream & operator>>(ifstream & in, ARRAY & Original)
{
cout<<"operator>> has been called\n";
Original.counter = 0;
while(!in.eof() && Original.count<Original.cap)
{
in>>Original. point[Original.counter];
(Original.counter)++;
}
return in;
}
private:
string *point;
int counter;
int cap;