c++ - Streams 中的内联忽略

标签 c++ stream inline istream

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

例如 this answer我正在阅读:

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

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

但我希望能够内联完成所有这些:

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

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

最佳答案

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

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

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

关于c++ - Streams 中的内联忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29413954/

相关文章:

javascript - 在 Node.js/Gulp 中重用流管道/子管道

c++ - 建议编译器有选择地内联函数调用

c++ - inline关键字的两种不同效果有什么关系?

c++ - 如何使用 boost::format 生成十六进制输出?

C++不完整的类型和转换错误

lucene - 如何使用Lucene库提取n-gram?

c++ - 算术指针和 fstream C++

javascript - Cckeditor:按需显示和隐藏内联工具栏

c++ - 加载主 QT/QML GUI 窗口会减慢启动画面的渲染速度

c++ - 无法在 Windows 上构建 Soundpipe DSP 库