C++ 避免操作员>&燃气轮机;在空白处中断输入

C++ 避免操作员>&燃气轮机;在空白处中断输入,c++,string,operator-overloading,C++,String,Operator Overloading,我正在重载运算符>>函数。它应该在输入中接受一个字符串,需要一些空白,在空白处分解字符串,并执行与主题无关的其他操作 我有以下代码: std::istream& operator>>(std::istream &in, Foo &f) { std::string str; in >> str; std::cout << "str = " << str << std::endl; // fo

我正在重载
运算符>>
函数。它应该在输入中接受一个字符串,需要一些空白,在空白处分解字符串,并执行与主题无关的其他操作

我有以下代码:

std::istream& operator>>(std::istream &in, Foo &f) {
    std::string str;
    in >> str;
    std::cout << "str = " << str << std::endl; // for testing
    // ...
    return in;
}
std::cout
函数仅打印
3
。我试着把标志设置为std::noskipws,但问题仍然存在

有没有办法解决这个问题?

使用函数读取完整的输入行:

std::getline(in, str);
std::getline(in, str);