#include "wektor.h"
#include "wyraz.h"
#include <cstdlib>
#include <algorithm>
#include <map>
#include <ctime>
#include <sstream>
#include <iostream>
#include <fstream>
#define MAX 500
using namespace std;

/* Program tworzy slownik wyrazow pojawiajacych sie w tekscie.
   Plik do odczytu mozemy podac jeko argument programu, np.:
   slownik.exe plik.txt

   Jezeli nie podamy pliku wejsciowego jako argument programu wowczas program prosi o podanie nazwy pliku do odczytu. */

int main(int argc, char *argv[])
{
	ifstream plik;
   char *nazwa_pliku = NULL;
	if(argc==2) nazwa_pliku = argv[1];
   else
   {
      cout << "Podaj nazwe pliku: " << endl;
      char linia[MAX];
      cin.getline(linia,MAX);
      nazwa_pliku=linia;
   }
   
   plik.open(nazwa_pliku);
   if(!plik) 
   {
	   cerr << "Blad! Nie moge odczytac pliku: " << nazwa_pliku << endl;
	   return 1;
   }

	Wyraz w;

	// Tworzymy slownik
	map<Wyraz,int> slownik;
	while(plik >> w) slownik[w]++;

	//Wyswietlamy slownik
	map<Wyraz,int>::iterator it;
	for(it=slownik.begin(); it!=slownik.end(); it++)
   {
      Wyraz wyraz=((*it).first);
      int liczba=(*it).second;
		cout << wyraz << " " <<  liczba << endl;
   }
	if(plik.is_open()) plik.close();

/*  
	std::stringstream ss;      
 
	ss << "!@&#&*(Ala_ma++kota" << endl;
 
	Wyraz w;
	while(!ss.eof())
	{
		ss >> w;
		cout << w << endl;
	}

*/

	return 0;


}
