C++ examples for STL Algorithm:replace_copy
Using istreambuf_iterator, ostreambuf_iterator, and replace_copy() to filter a file.
#include <iostream> #include <fstream> #include <iterator> #include <algorithm> using namespace std; int main(int argc, char *argv[]) { if(argc != 5) { cout << "Usage: replace in out oldchar newchar\n"; return 1;/* w w w .jav a 2s . c o m*/ } ifstream in(argv[1]); ofstream out(argv[2]); // Make sure files opened successfully. if(!in.is_open()) { cout << "Cannot open input file.\n"; return 1; } if(!out.is_open()) { cout << "Cannot open output file.\n"; return 1; } // Create stream iterators. istreambuf_iterator<char> in_itr(in); ostreambuf_iterator<char> out_itr(out); // Copy the file, replacing characters in the process. replace_copy(in_itr, istreambuf_iterator<char>(), out_itr, *argv[3], *argv[4]); in.close(); out.close(); return 0; }