内联忽略流(Inline ignore in Streams)

2019-10-22 11:56发布

有没有办法忽略C ++内联字符?

例如,在这个答案我阅读:

istringstream foo("2000-13-30");

foo >> year;
foo.ignore();
foo >> month;
foo.ignore();
foo >> day;

但是我想能够做到这一切的内联:

foo >> year >> ignore() >> month >> ignore() >> day;

我认为这是在C ++中可能的,但它绝对不是编译我。 也许我想起另一种语言?

Answer 1:

foo.ignore()是一个成员函数,因此它不能被用作一个操纵器。 它也没有正确的返回类型和参数声明是可作为一个。 您可以轻松地制作自己虽然:

std::istream& skip(std::istream& is) {
    return (is >> std::ws).ignore();
}

foo >> year >> skip >> month >> skip  >> day;


文章来源: Inline ignore in Streams