#include <cstdlib>
#include <iostream>
#include <string>
#include <windows.h>
#include <fstream>
#include <algorithm>

using namespace std;

enum WartoscReki
{
    Para = 0x100,
    DwiePary = 0x200,
    Trojka = 0x300,
    Strit = 0x400,
    kolor = 0x500,
    Full = 0x600,
    Kareta = 0x700,
    Poker = 0x800,
};

static const std::string uklad[] = {"Nic", "Para", "Dwie Pary", "Trojka", "Strit", "Kolor", "Full", "Kareta", "Poker"};
static const std::string kolory = "TKAP";
static const std::string wartosci = "234567891WDKA";

int str2karta(const std::string& k)
{
    if(k.length() != 2)
        return -1;
    std::string::size_type wartosc = wartosci.find(k[0]);
    std::string::size_type kolor = kolory.find(k[1]);
    if(wartosc == std::string::npos || kolor == std::string::npos)
        return -1;
    return wartosc*4+kolor;
}
std::string karta2str(int k)
{
    return std::string(1, wartosci[k/4]) + std::string(1, kolory[k%4]);
}

bool CzyPoker(int reka[5], int &ret)
{
   
    for (int i = 0; i < 4; ++i)
    {
        if (reka[i] / 4 +1 != reka[i + 1] / 4 || reka[i] % 4 != reka[i + 1] % 4)
            return false;
    }
    ret = reka[4] + Poker;
    return true;
}
bool CzyKareta(int reka[5], int &ret)
{
   
    for (int i = 0; i < 2; ++i)
    {
        if (reka[i] / 4 == reka [i+3] / 4)
        {
            ret = reka[i + 3] + Kareta;
            return true;
        }
    }
    return false;
}
bool CzyFull(int reka[5], int &ret)
{
   
    for (int i = 0; i < 2; ++i)
    {
        if (reka[i] / 4 == reka [i+1] / 4 && reka [i+2] / 4 ==  reka [i+1] / 4 | reka[i+3] / 4 == reka [i+4] / 4)
        {
            ret = reka[i+4] + Full;
            return true;
        }
    }
    return false;
}
bool CzyKolor(int reka[5], int &ret)
{
   
    for (int i = 0; i < 4; ++i)
    {
        if (reka[i] % 4 != reka[i + 1] % 4)
            return false;
    }
    ret = reka[4] + kolor;
    return true;
}
bool CzyStrit(int reka[5], int &ret)
{
   
    for (int i = 0; i < 4; ++i)
    {
        if (reka[i] / 4 +1 != reka[i + 1] / 4)
            return false;
    }
    ret = reka[4] + Strit;
    return true;
}
bool CzyTrojka(int reka[5], int &ret)
{
   
    for (int i = 0; i < 2; ++i)
    {
        if (reka[i+2] / 4 == reka [i+3] / 4 && reka[i+2] / 4 == reka [i+4] / 4)
        {
            ret = reka[i+3] + Trojka;
            return true;
        }
    }
    return false;
}
bool CzyDwiePary(int reka[5], int &ret)
{
   
    for (int i = 0; i < 2; ++i)
    {
        if (reka[i] / 4 == reka [i+1] / 4 | reka[i+2] / 4 == reka [i+3] || reka[i+1] / 4 == reka [i+2] / 4 | reka[i+3] / 4 == reka [i+4])
        {
            ret = reka[i+4] + DwiePary;
            return true;
        }
    }
    return false;
}
bool CzyPara(int reka[5], int &ret)
{
   
    for (int i = 0; i < 2; ++i)
    {
        if (reka[i] / 4 == reka [i+1] / 4 || reka[i+3] / 4 == reka [i+4] / 4 )
        {
            ret = reka[i+4] + Para;
            return true;
        }
    }
    return false;
}


int WartoscReki(int reka[5])
{
    int ret = 0;

    if (CzyPoker(reka, ret))
        return ret;
    if (CzyKareta(reka, ret))
        return ret;
     if (CzyFull(reka, ret))
        return ret;
    if (CzyKolor(reka, ret))
        return ret;
    if (CzyStrit(reka, ret))
        return ret;
    if (CzyTrojka(reka, ret))
        return ret;
    if (CzyDwiePary(reka, ret))
        return ret;
    if (CzyPara(reka, ret))
       return ret;
    return reka[4];
}
int main(){



 std::cout<<"================================================================"<<std::endl;
 std::cout<<"POKER."<<std::endl; 
 std::cout<<"Program do analizy ukladow kart."<<std::endl;
 std::cout<<"================================================================"<<std::endl;


       system( "pause" );
	   system( "cls" );

 
 std::cout<<"================================================================"<<std::endl;
 std::cout<<"Aby sprawdzic uklad pokerowy wprowadz karty do pliku"<<std::endl; 
 std::cout<<"Gracz 1.txt i Gracz 2.txt"<<std::endl;
 std::cout<<"================================================================"<<std::endl; 


	  system( "pause" );
	  system( "cls" ); 


 std::cout<<"================================================================"<<std::endl;
 std::cout<<"Rodzaje kart"<<std::endl;
 std::cout <<"==============================================================="<<std::endl;
 std::cout<<"1 - Dziesiatka  2 - Dwojka  3 - Trojka ...  W - Walet ...\n"<<std::endl;
 std::cout<<"================================================================"<<std::endl;
 std::cout<<"Rodzaje kolorow\n"<<std::endl;
 std::cout<<"================================================================"<<std::endl;
 std::cout<<"P - Pik  K - Kier  T - Trefl  A - Karo \n"<<std::endl;
 std::cout<<"================================================================"<<std::endl;

     system( "pause" );
	 system( "cls" );

{
{

 
    std::ifstream inf;
    inf.open("Gracz 1.txt");
    std::cout<<"Karty Gracza 1"<<std::endl;
	if(!inf)
    {
        std::cout<<"Nie mozna otworzyc pliku: "<<std::endl;
        return 1;
    }
    std::string strkarta;
    int karty[5];
    int i = 0;
    while(inf>>strkarta && i<5)
    {
        karty[i] = str2karta(strkarta);
        if(karty[i]<0)
        {
            std::cout<<"Nieprawidlowa karta: "<<strkarta<<std::endl;
            return 1;
        }
        ++i;
    }
    if(i != 5)
    
	{
        std::cout<<"Do obliczenia ukladu potrzeba 5 kart. Popraw plik Gracz 1.txt i sprobuj ponownie."<<std::endl;
        return 1;
    }
    std::sort(karty, karty+5);
    int ret = WartoscReki(karty);
    std::cout<< "Z wczytanych kart: ";
    std::for_each(karty, karty+5, [](int k){std::cout<<karta2str(k)<<" ";});
    std::cout<<" Mozna zbudowac " << uklad[ret>>8] << " Najwyzsza karta: " << karta2str(ret&0xFF)<<std::endl; ;
   }
       system( "pause" );
	   system( "cls" );
   {
	
    std::ifstream inf;
    inf.open("Gracz 2.txt");
    std::cout<<"Karty Gracza 2"<<std::endl;
    if(!inf)
    {
        std::cout<<"Nie mozna otworzyc pliku: "<<std::endl;
        return 1;
    }
    std::string strkarta;
    int karty[5];
    int i = 0;
    while(inf>>strkarta && i<5)
    {
        karty[i] = str2karta(strkarta);
        if(karty[i]<0)
        {
            std::cout<<"Nieprawidlowa karta: "<<strkarta<<std::endl;
            return 1;
        }
        ++i;
    }
    if(i != 5)
    
	{
        std::cout<<"Do obliczenia ukladu potrzeba 5 kart. Popraw plik Gracz 2.txt i sprobuj ponownie."<<std::endl;
        return 1;
    }
    std::sort(karty, karty+5);
    int ret = WartoscReki(karty);
    std::cout<< "Z wczytanych kart: ";
    std::for_each(karty, karty+5, [](int k){std::cout<<karta2str(k)<<" ";});
    std::cout<<" Mozna zbudowac " << uklad[ret>>8] << " Najwyzsza karta: " << karta2str(ret&0xFF)<<std::endl;

    
   return 0;
}
}
} 

Oto kod mojego programu pokerowego.
Kod jest kompletny i program działa.
Niestety mam problem bo nie wiem jak zapisać wyniki dla Gracza nr 1 i Gracza nr 2 i stwierdzić który gracz wygrał.
Proszę o pomoc.