C#的stream对应的c++实现
时间: 2023-08-31 10:13:36 浏览: 157
在C++中,可以使用`std::basic_streambuf`类和其派生类来实现与C#中`Stream`类类似的字节流操作。下面是一个简单的示例:
```c++
#include <fstream>
#include <iostream>
#include <string>
int main() {
std::ifstream input_file("input.txt", std::ios::binary);
std::ofstream output_file("output.txt", std::ios::binary);
// 读取输入文件中的数据
std::string buffer(1024, '\0');
while (input_file.read(&buffer[0], buffer.size())) {
auto count = input_file.gcount();
buffer.resize(count);
// 处理读取到的数据
std::cout << "Read " << count << " bytes from input file" << std::endl;
// 将读取到的数据写入输出文件
output_file.write(&buffer[0], count);
}
input_file.close();
output_file.close();
return 0;
}
```
在上面的代码中,我们使用`std::ifstream`和`std::ofstream`分别打开输入和输出文件,然后使用`std::string`作为缓冲区,循环从输入文件中读取数据,并将读取到的数据写入输出文件中。需要注意的是,我们需要指定文件打开模式为`std::ios::binary`,以避免在读取或写入数据时进行换行符转换等操作。另外,在使用完`std::ifstream`和`std::ofstream`对象后,需要调用它们的`close()`方法或析构函数来释放资源。
阅读全文