• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Odczyt wszystkich plikow z katalogu c++

Object Storage Arubacloud
0 głosów
1,120 wizyt
pytanie zadane 18 stycznia 2017 w C i C++ przez milanap Nowicjusz (180 p.)

Napisałem program, który z katalogu input pobiera dane z pliku dane.txt, porownuje liczby w wierszu i zapisuje wynik do katalogu output do pliku wynik.txt.

#include <iostream>
#include <fstream>
#include <cstdlib>

using namespace std;

int main()
{
    int tab1[100]; //tablica na wczytanie pierwszej lczby z wiersza
    int tab2[100]; //tablica na wczytanie drugiejlczby z wiersza
    int n; //pierwszy wiersz z pliku, w ktorym podane jest ile wierszy trzeba porownac
    int  liczba=0; //ilosc sytuacji gdy pierwsza liczba jest wieksza od drugiej
    fstream input;
    ofstream output ("output\\wynik.txt");
    input.open("input\\dane.txt", ios::in);

    if(input.good()==false) cout<<"Nie mozna otworzyc pliku!";
       input >> n;
    for (int i=0; i<n; i++)
    {
        input >> tab1[i] >> tab2[i];
        if (tab1[i]>tab2[i])
        {
          liczba++;
        }
    }
    input.close();
    output<<liczba<<endl;
    output.close();
    return 0;
}

Moje pytanie brzmi jak zrobić, żeby program działal dla dowolnej liczby plików wejściowych?

Na przykład w folderze input sa pliki dane1.txt, dane2.txt i dane3.txt i chciałbym, żeby po kolei odczytywał dane z tych plików i zapisał wyniki do katalogu output do plikow wynik1.txt, wynik2.txt i wynik3.txt.

komentarz 18 stycznia 2017 przez niezalogowany
Tzn jakby miał dokładnie działać, co miałby porównywać, dalej po 2 pliki, czy wszystkie jednocześnie? (co miałoby się znajdować w plikach wyjściowych).

Przede wszystkim musisz zrezygnować z hardcode'owanych ścieżek, podobnie z wielkością tablicy. Zależnie od twoich wymagań można będzie zrezygnować z tablic, albo skorzystać z jakiejś struktury np drzewa aby efektywniej porównywać dane

2 odpowiedzi

0 głosów
odpowiedź 18 stycznia 2017 przez jegor377 Stary wyjadacz (13,230 p.)
użyj parametrów. int main(int argc, char* argv[]) - wpisz w google i poczytaj.
0 głosów
odpowiedź 18 stycznia 2017 przez Arek Sob Początkujący (410 p.)
Musisz przeszukać dany folder w poszukiwaniu plików txt. Zapisać ich nazwy do zmiennej a dalej to już kombinuj :)
FindFirstFile()

Poco używasz tablic jak wystarczą tutaj 2 zmienne ?

Podobne pytania

0 głosów
1 odpowiedź 397 wizyt
pytanie zadane 7 marca 2023 w Systemy operacyjne, programy przez Mariusz M Obywatel (1,640 p.)
+1 głos
0 odpowiedzi 415 wizyt
0 głosów
0 odpowiedzi 107 wizyt
pytanie zadane 28 stycznia 2016 w Java przez PiotrK Użytkownik (580 p.)

92,551 zapytań

141,399 odpowiedzi

319,531 komentarzy

61,938 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...