动态修改输入流数据
Modify input stream data on the fly
我想实现一个std::stream修饰符/解析器,即在飞行中进行数据操作。
是否可以以流操纵符的形式创建它?例如,我想从标准输入中删除所有行注释(从任何//
到行尾),并将其传递给标准输出。
string str;
istream strippingCin = cin >> stripcomments;
while(strippingCin.good())
{
strippingCin >> str;
cout << str;
}
也可能有一个大的文件输入而不是cin,所以我不想一次将完整的流数据加载到内存中。
不写自己的流类是可能的吗?
也许我应该走另一条路?
boost::iostreams::filtering_stream
是完美的。在编写了一个过滤类之后(参见这里的类似示例),您只需这样做:
boost::iostreams::filtering_istream strippingCin;
strippingCin.push(StripCommentsFilter());
strippingCin.push(std::cin);
和istream
对象strippingCin
准备使用
相关文章:
- 如何忽略输入流中的某些字符?
- c ++数据输入并读回列表中的结构结构中的数组
- C++输入流.与 cin unget() 函数有点混淆
- 从输入流中读取行,并能够跳过块
- 使用 Visual Studio 代码读取 C++ 中的输入流时出错
- 为什么我不能从结构将数据输入到字符数组中?
- 处理输入流运算符>>中的无效输入
- 树莓派上的端口音频,找不到输入流的设备
- 如何将C++输入流分隔符包含在结果令牌中
- 如果两个输入流相等,我如何构造主()到输出是
- 使用非成员函数从输入流中提取类对象
- CIN是否将输入流中的无效字符取用
- C 如何忽略错误数据输入
- 动态内存分配和输入(流)运算符C++
- 计算输入流中值的出现次数
- (C++) 学习向量 - 编码/输入流终止/比较向量的问题
- 动态修改输入流数据
- 如何处理csv文件输入流,我需要将文件的每一行中的数据划分为6个不同的变量(类型字符串和int)
- 无法从输入流读取字节数据
- 如何在输入流中接受多种数据类型?