next up previous
Next: Verwendung eines Vektors Up: Container (forts.) Previous: Verwendung einer Liste

Beispiel: Liste

/* GR Die Worte eines Satzes in umgekehrter Reihenfolge 
   ausgeben. 1998-11
*/
#include <iostream>
#include <list>
#include <string>
#include <fstream>
using namespace std;

#include <cstdlib> //für exit()

void error(char *s, char *s2="")
{
  cerr << s << ' ' << s2 << '\n';
  exit(1);
}

int main(int argc, char **argv)
{
  const string trennzeichen(" \t\n");
  typedef list<string> ListOfStrings;
  ListOfStrings words;

  string s;
  ifstream in;
  
  if (argc == 2) {
    in.open(argv[1], ios::in);
    if (!in) error("Fehler beim Lesen der Datei", argv[1]);
    while(getline(in, s)){
      if ('.' != s[s.length()])
        s += '.';
      string::size_type beg, end;
      beg=s.find_first_not_of(trennzeichen);
      while(beg != string::npos) {
        end=s.find_first_of(trennzeichen,beg);
        string wort = s.substr(beg,end-beg);
        words.push_back(wort);
        if (string::npos != wort.find('.')) {
          while(!words.empty()) {
            cout << words.back() << ' ';
            words.pop_back();
          }
        }
        beg=s.find_first_not_of(trennzeichen,end);
      }
      cout << '\n';
    }
  } else error("Argv: Zuwenig Argumente");
  
  return 0;
}


next up previous
Next: Verwendung eines Vektors Up: Container (forts.) Previous: Verwendung einer Liste

© 1997 Gottfried Rudorfer, C++-AG, Lehrveranstaltungen, Abteilung für Angewandte Informatik, Wirtschaftsuniversität Wien, 12/1/1998