2

我正在重载该operator>>功能。它应该在输入中输入一个字符串,需要一些空格,在空格处分解字符串并执行与主题无关的其他操作。

我有这个代码:

std::istream& operator>>(std::istream &in, Foo &f) {
    std::string str;
    in >> str;
    std::cout << "str = " << str << std::endl; // for testing
    // ...
    return in;
}

假设将此字符串(复数)作为输入:

3 + 2i

std::cout功能仅打印3。我试图把标志std::noskipws,但问题仍然存在。

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

4

1 回答 1

5

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

std::getline(in, str);
于 2013-07-14T17:16:59.153 回答