findblanks.cpp

来自「希望我提供的代码对大家有帮助」· C++ 代码 · 共 41 行

CPP
41
字号
//: C21:FindBlanks.cpp

// From Thinking in C++, 2nd Edition

// Available at http://www.BruceEckel.com

// (c) Bruce Eckel 1999

// Copyright notice in Copyright.txt

// Demonstrate mem_fun_ref() with string::empty()

#include "../require.h"

#include <algorithm>

#include <list>

#include <string>

#include <fstream>

#include <functional>

using namespace std;



typedef list<string>::iterator LSI;



LSI blank(LSI begin, LSI end) {

   return find_if(begin, end, 

     mem_fun_ref(&string::empty));

}



int main(int argc, char* argv[]) {

  requireArgs(argc, 1);

  ifstream in(argv[1]);

  assure(in, argv[1]);  

  list<string> ls;

  string s;

  while(getline(in, s))

    ls.push_back(s);

  LSI lsi = blank(ls.begin(), ls.end());

  while(lsi != ls.end()) {

    *lsi = "A BLANK LINE";

    lsi = blank(lsi, ls.end());

  }

  string f(argv[1]);

  f += ".out";

  ofstream out(f.c_str());

  copy(ls.begin(), ls.end(), 

    ostream_iterator<string>(out, "\n"));

} ///:~

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?