用C++中STL提供的fstream和stream_iterator读写二进制文件。
2010-08-02 13:14
519 查看
/**********************************************************
** 用C++中STL提供的fstream和stream_iterator读写二进制文件。
**********************************************************/
** 用C++中STL提供的fstream和stream_iterator读写二进制文件。
**********************************************************/
#include <iostream> #include <fstream> #include <list> #include <string> #include <iterator> // 测试用的文件 const std::string fileIn = "test.jpg"; const std::string fileOut = std::string("new") + fileIn; class Opcode { public: //...这里定义其他操作 private: uint16_t _cmd; uint16_t _op1; uint16_t _op2; }; inline std::istream& operator>>(std::istream& is, Opcode& opcode) { is.read(reinterpret_cast<char*>(&opcode), sizeof(Opcode)); return is; } inline std::ostream& operator<<(std::ostream& os, const Opcode& opcode) { os.write(reinterpret_cast<const char*>(&opcode), sizeof(Opcode)); return os; } int main() { std::ifstream in(fileIn.c_str(), std::ios::binary | std::ios::in); if(!in) { std::cerr << "Open In file failed!" << std::endl; return -1; } std::list<Opcode> opcodeList; //从文件中读入数据 std::istream_iterator<Opcode> is(in); std::istream_iterator<Opcode> eof; std::copy(is, eof, back_inserter(opcodeList)); //...这里对数据进行一些操作 << std::ofstream out(fileOut.c_str(), std::ios::binary | std::ios::out); if(!out) { std::cerr << "Open Out file failed!" <<std::endl; return -1; } //把数据写入另外一个文件中 std::ostream_iterator<Opcode> os(out, ""); std::copy(opcodeList.begin(), opcodeList.end(), os); std::cout << "Write OK!" << std::endl; return 0; }
相关文章推荐
- (转载)用C++中STL提供的fstream和stream_iterator读写二进制文件
- fstream提供了三个类,用来实现c++对文件的操作。(文件的创建、读、写)。 ifstream -- 从已有的文件读 ofstream -- 向文件写内容 fstream - 打开文件供读写
- C++文件读写详解(ofstream,ifstream,fstream)
- C++文件读写详解(ofstream,ifstream,fstream)
- C++文件读写详解(ofstream,ifstream,fstream)
- C++文件读写详解(ofstream,ifstream,fstream)
- C++文件读写详解(ofstream,ifstream,fstream)
- C++文件读写详解(ofstream,ifstream,fstream)
- C++文件读写详解(ofstream,ifstream,fstream)
- [c++]C++文件读写详解(ofstream,ifstream,fstream)
- C++文件读写详解(ofstream,ifstream,fstream)
- C++文件读写详解(ofstream,ifstream,fstream)
- C++文件读写详解(ofstream,ifstream,fstream)
- C++文件读写详解(ofstream,ifstream,fstream)
- C++文件读写详解(ofstream,ifstream,fstream)
- C++文件读写详解(ofstream,ifstream,fstream)
- C++文件读写详解(ofstream,ifstream,fstream)
- C++文件读写详解(ofstream,ifstream,fstream)
- C++之文件读写详解(ofstream,ifstream,fstream)
- C++文件读写详解(ofstream,ifstream,fstream)