我要编写包含某些 vector 的女巫类程序。我重载了“>>”运算符,我想将值在一行中键入,就像这样



这是我的职责

istream &operator>>(istream &in, Wielomian &w){
    double val;
    w.stopien=0;
    while(in>>val){
        w.tabw.push_back(val);
        w.stopien++;
    }
    return in;
};

我不知道自己在做什么错,此功能在循环时不会完成。
这是我类
class Wielomian{

private:
    int stopien;
    vector<double> tabw;
public:
    Wielomian(){
        stopien=0;
    }
    Wielomian(int s, vector<double> t){
        tabw=t;
        stopien=s;
    }
    Wielomian(Wielomian &w){
        this->stopien=w.stopien;
        this->tabw=w.tabw;
    }

    friend istream &operator>>(istream &in, Wielomian &w);
    friend ostream &operator<<(ostream &out, const Wielomian &w);
};

感谢您的任何建议。

最佳答案

如果您只想从同一行中读取所有内容,则应尝试使用getline而不是while(in >> val):

string inputStr;
std::getline(in, inputStr);

然后解析该字符串以从中提取所有值。否则,如果您正在执行while(in >> val),则需要以某种方式终止输入。

10-04 22:32