Avatar billede jonlanghoff Nybegynder
16. december 2005 - 16:07 Der er 6 kommentarer

Alfabetisk sortering i .txt-fil

Hej,

Jeg skal bruge en funktion der kan gå ind i en .txt-fil og sortere indholdet alfabetisk.

Gerne komplet kode..... :P
Avatar billede bertelbrander Novice
16. december 2005 - 20:34 #1
#include <iostream>
#include <fstream>
#include <iterator>
#include <string>
#include <vector>

int main()
{
  std::ifstream is("test.txt");

  std::vector<std::string >MyVector;
  std::string Line;
  while(std::getline(is, Line))
      MyVector.push_back(Line);

  std::sort(MyVector.begin(), MyVector.end());
  std::copy(MyVector.begin(),
            MyVector.end(),
            std::ostream_iterator<std::string>(std::cout,"\n"));
}
Avatar billede jonlanghoff Nybegynder
19. december 2005 - 09:20 #2
Hey, tak for koden, men jeg får følgende fejl når jeg prøver at builde den i Visual Studio .NET 2003:

error C2039: 'sort' : is not a member of 'std'
error C3861: 'sort': identifier not found, even with argument-dependent lookup

Hvad gør jeg så?
Avatar billede jonlanghoff Nybegynder
19. december 2005 - 09:45 #3
Nå, jeg fandt ud af det. Der manglede en include-fil...

Men det virker stadig ikke... Den kører det igennem, men filen bliver ikke sorteret.
Avatar billede jonlanghoff Nybegynder
19. december 2005 - 09:56 #4
Ahh...!! NU forstår jeg :P - Den printer det på skærmen i stedet for at gemme det i samme fil! Hvordan får man den så til at gøre det?? Den skal efterlade filen i alfabetisk sorteret tilstand.
Avatar billede bertelbrander Novice
19. december 2005 - 20:31 #5
#include <algorithm>
#include <iostream>
#include <fstream>
#include <iterator>
#include <string>
#include <vector>

int main()
{
  std::ifstream is("test.txt");
  std::vector<std::string >MyVector;
  std::string Line;
  while(std::getline(is, Line))
      MyVector.push_back(Line);
  is.close();

  std::sort(MyVector.begin(), MyVector.end());

  std::ofstream os("test.txt");
  std::copy(MyVector.begin(),
            MyVector.end(),
            std::ostream_iterator<std::string>(os, "\n"));
}
Avatar billede jonlanghoff Nybegynder
22. december 2005 - 08:59 #6
Jeg takker.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester