C++ Bc. 31 cpp

Z GeoWikiCZ
Přejít na: navigace, hledání
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>

using namespace std;


class CitacSlov
{
public:

  CitacSlov() : soubory(0), tradky(0), tslova(0),tznaky(0) {}
  ~CitacSlov();

  void soubor(char* jmeno);

private:

  // pocet souboru

  int soubory;

  // total 

  int tradky;
  int tslova;
  int tznaky;
};


void CitacSlov::soubor(char* jmeno)
{
  using namespace std;

  int radky = 0;
  int slova = 0;
  int znaky = 0;

  soubory++;

  ifstream soubor(jmeno);
  while (soubor)
    {
      char   znak = ' ';
      string radek;
      while (soubor.get(znak) && znak != '\n') radek += znak;

      if (znak == '\n')
        {
          radky++;
          znaky += 1;
        }

      string slovo;
      istringstream str(radek);
      while (str >> slovo)
        slova++;

      znaky += radek.length();
    } 

  cout << "\t" << radky << "\t" << slova << "\t" << znaky << "  " << jmeno 
       << endl;

  tradky += radky;
  tslova += slova;
  tznaky += znaky;
}


CitacSlov::~CitacSlov()
{
  using namespace std;

  if (soubory > 1)
    cout << "\t" << tradky << "\t" << tslova << "\t" << tznaky << "  total\n";
}


int main(int argc, char* argv[])
{
  argv++;   // argv[0] je jmeno spusteneho programu

  CitacSlov citac;

  while (*argv)
    {
      citac.soubor(*argv);
      argv++;
    }
}

[ Zpět ]