C++ wiele plików txt

Mam problem. Chcę napisać program, który będzie zaglądał, do konkretnego folderu i wczytywał po kolei wszystkie pliki, które się tam znajdują. Wiem, że o ile w przypadku stałej ilości plików do odczytu możnaby poprostu napisiać

ifstream lol(“nazwapliku.txt”);

ale tutaj nie znam nazw plików, ani ich ilości, a jedynie katalog, w którym się one będą znajdować… Jakies pomysły? Czy odpowiedź na to pytanie w ogóle znajduje się w bibliotece fstream?

Biblioteka standardowa nie daje takich możliwości, musiałbyś się posłużyć jakąś zewnętrzną biblioteką.

Wyciągnięcie listy plików odbywa się w różne sposoby na różnych systemach operacyjnych.

W przypadku dos/windows - FindFirst, FindNext, FindClose.

Możesz użyć np. biblioteki Boost.Filesystem, tu masz przykład programu ls : http://www.boost.org/doc/libs/1_36_0/li … ple_ls.cpp

Napisałem program, który z danego katalogu, pobiera Ci wszystkie pliki i tworzy o tej samej nazwie plik txt :wink: Skorzystaj sobie z niego, może Ci się przydać :slight_smile:

#include 

#include 

#include 

#include 

#include 

using namespace std;


int main()

{

   int loc;  


   ofstream plik;

   vector nazwy;

   DIR * folder;

   struct dirent*dir;


   folder=opendir("/twoj katalog");


  while((dir = readdir(folder))!= NULL)

  {

     nazwy.push_back(dir->d_name);

     cout<d_name<
  } 


   for(int x=2;x
   {

      loc=nazwy[x].find(".",0);


      if(loc != string:: npos)

      {

      nazwy[x]=nazwy[x].substr(0,loc);

      cout<
      }


      string nazwa=nazwy[x]+".txt";

      plik.open(nazwa.c_str()); 

      plik.close();

   }


   system("pause>nul");

   return 0;

}

MrPigmej , przedstawił wersje działającą pod linux/unix, ale pod windows oraz mac os nie skompiluje się nawet. :smiley:

C pierwotnie był planowany jako język przenośny, więc nie zawiera nic specyficznego dla jakiejkolwiek platformy.

Biblioteka boost podobnie działa pod każdym systemem, ale słyszałem narzekania programistów że to nie do końca prawda.

dziękuję wszystkim za miłe rady :slight_smile: przy czym nie mogę ukryć, że podany kod programu był szczególnie przydnatny, tym bardziej, że w przeciwieństwie do tego co tu niektórzy insynuowali, wszystko się skompilowało dobrze :slight_smile:

Działa ten program od windowsem w 100 %, ponieważ był on pisany dla mojego taty (ale zbędne fragmentu usunąłem) :wink:

kamiljano , cieszę się, że przydał się kod :wink: