programm soll dateien lesen



  • hallo,

    ich möchte gerne in einem c++ programm dateien, die ich ihm im promt angebe, anziehen. ich stelle mir das so vor: man gibt den namen seines programms an und dahinter jeweils mit space die 3 oder 4 oder 5 namen der dateien an. diese dateien werden dann wie ofstreams bearbeitet. ich glaube irgendwie mit argv oder ähnlichem müsste das gehen, aber ich kenne mich da nicht gut aus. hätte da irgendjemand eine idee oder einen tipp für mich bitte?

    danke



  • Du kannst die main() -Funktion auf folgende Art deklarieren:

    int main(int argc, char** argv)
    {
        // ..
    }
    

    Dabei gibt der erste Parameter (hier argc ) die Anzahl Argumente und der zweite Parameter (hier argv ) ein dynamisches Array mit argc C-Strings an. argv[0] ist meist der Programmname, argv[1] bis argv[argc-1] sind die eigentlichen Kommandozeilenargumente vom Typ char* .



  • danke für die antwort.

    heisst das jetzt, ich kann in einer kommandozeile nur eine datei anziehen?

    danke



  • rasidrasid schrieb:

    heisst das jetzt, ich kann in einer kommandozeile nur eine datei anziehen?

    Anziehen? 🙂

    Nein, es sind auch mehrere möglich. Wenn du die Kommandozeilenargumente mit Leerschlag trennst, bekommt jedes einen Eintrag in argv . Falls gewisse Einträge Leerschläge enthalten sollen, kannst du diese in Anführungszeichen setzen, damit sie als ein Argument angesehen werden.



  • sicherlich weisst du was du schreibst und du kennst dich aus. könntest du bitte für mich ein beispiel hier reinstellen? es gibt eine datei die heisst a.txt, b.txt, c.txt, d.txt und diese sollen über eine kommandozeile mit "meinemprogramm" eingelesen werden.....eingelesen==anziehen 😉

    so etwa:
    meinprogramm a.txt b.txt c.txt d.txt

    danke



  • Denk ma das hier hilft dir:

    #include <iostream>
    
    int main(ing argc, char** argv)
    {
       for(int i = 0; i <  argc; i++)
         cout << argv[i] << endl;
    }
    
    // Aufruf:
    programm.exe a.txt b.txt c.txt d.txt
    
    // ausgabe:
    programm.exe
    a.txt
    b.txt
    c.txt
    d.txt
    


  • ich danke dir. hat sehr geholfen.

    gruß 😃


Anmelden zum Antworten