Quantcast

Sortiranje podataka u .txt datoteci [C++]

miki208

Ističe se
Poruka
2.974
Da li neko zna kako bih mogao da sortiram podatke u txt fajlu,posto sam napravio jedan kviz i hocu da u jednom txt fajlu skladistim podatke[HIGHSCORE],i to tako da bude sortirano od najvisem ka najmanjem broju bodova kao sto je u ovom primeru.Npr:
highscore.txt
Kod:
Player10 45
Player3 39
Player7 31
Player4 18
 
Poslednja izmena:

2paca.zwaka

Primećen član
Poruka
561
pa dakle kad neko zavrzi kviz i ostvari nekakav skor loadujes zadnji tj. najslabiji od HIGHscore-sa i pitas dali je ostvareni broj poena veci od tog....ako jeste ides dalje i pitas isto sve dok ne dobijes da je ostvareni broj poena manji od nekog sa hajskor liste.....kada to uradis samo prepises datoteku: :).....radim sad neki projekat a kad zavrsim postavicu ti resenje ako ti ovo nije dovoljno :D
 

2paca.zwaka

Primećen član
Poruka
561
poces ovako
Kod:
player0 0
player0 0
player0 0
player0 0
player0 0
i onda ides
ako je player1 osvojio vise poena od player 0 postavi ga tu
pa o5 radis to sve dok ne naidjes na kraj txt. datoteke ili dok ne naodjes da je neki player iz dateteke osvojio vise poena nego ovaj sad......kontas....citas datoteku sa kraja :D
 

2paca.zwaka

Primećen član
Poruka
561
evo ga.....msm da radi sta bi trebalo......testiraj :D :D
Kod:
void PostaviHighscore(string imeP,int PoeniP)
{
     ifstream file("highscore.txt");
     string Niz[6];
     for (int i=0;i<5;i++)
     {
         getline(file,Niz[i]);
     }
     int Poeni[6];
     string myString; 
     for (int i=0;i<5;i++)
     {
         myString=Niz[i].substr(Niz[i].length()-2,2);
         Poeni[i]=atoi(myString.c_str());
         Niz[i].erase(Niz[i].length()-2,2);
     }
     file.close(); 
     int temp=0;  
     string temp1="";
     Poeni[5]=PoeniP;
     Niz[5]=imeP;
     for(int q = 0; q < 5; q++)
     {
         for(int j = q+1; j < 6; j++)
         {
             if(Poeni[q] < Poeni[j])
             {
              temp = Poeni[q];
              Poeni[q] = Poeni[j];
              Poeni[j] = temp;
              temp1=Niz[q];
              Niz[q]=Niz[j];
              Niz[j]=temp1;
             }
         }
     }
ofstream f("highscore.txt");
        for (int i=0;i<6;i++)
        {
            f << Niz[i]<<" "<<Poeni[i];
        }
        f.close();
}
NISAM IMAO KAD da testiram pa ako nesto bude problem mozes sam da prepravis :D
 

Top
  Blokirali ste reklame
Dragi prijatelju, nemojte da blokirate reklame - isključite Ad Blocker na Forumu, jer će tako mesto vaših susreta na Krstarici ostati besplatno za korišćenje.