Next: Verwendung eines Vektors
Up: Container (forts.)
 Previous: Verwendung einer 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;
}
| © 1997 Gottfried Rudorfer, C++-AG, Lehrveranstaltungen, Abteilung für Angewandte Informatik, Wirtschaftsuniversität Wien, 12/1/1998 |