C++ c++,获得';“无操作员”&燃气轮机&燃气轮机&引用;匹配这些操作数';。对于读取文件的函数

C++ c++,获得';“无操作员”&燃气轮机&燃气轮机&引用;匹配这些操作数';。对于读取文件的函数,c++,C++,我在这段代码中有一个错误:在“in>>点”中“>>”的while循环中 我对C++仍然是新手,所以对理解这一点有帮助。 < p>你试图读到 const字符串。不是传递常量字符串点,而是传递字符串和点,作为字符串的可修改引用传递 >>点[计数器]中的线正在调用点上的操作员[],然后调用操作员>。但由于点是一个常量字符串,运算符[]返回一个常量字符&,不应读入该字符串。您希望它返回字符&,因此点必须是非常量。不要使用.eof()中的来控制循环读取值!(这是一个一般性建议,与您的问题没有直接关系)您的

我在这段代码中有一个错误:在“in>>点”中“>>”的while循环中


<>我对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;