Fragen zu argv und argc



  • kann ich auch dateien als parameter übergeben?

    programm.exe config.ini kopie.ini

    ???



  • Klar, wenn du deine Parameter argv[1], argv[2] dann auch korrekt auswertest. Du kannst alles mögliche übergeben. Was damit hinterher passiert, ist allein deine Sache.



  • was du da übergibst, ist doch Interpretationssache des Programms.

    MfG,

    Probe-Nutzer



  • ja ich hab nen tool, was ne .ini datei bearbeitet und die änderung in einer separaten datei abspeichert.

    und die beiden dateien wollte ich als parameter übergeben und halt mit argc[] im code entsprechend benutzen.



  • Dann mach das doch einfach. Prüfe aber ob dann "argc == 3" ist und ob die Dateinamen in Ordnung sind ( ein der beiden Dateien muss ja existieren ). Die zweite Datei darf vielleicht garnicht existieren.



  • oh-jonney schrieb:

    kann ich auch dateien als parameter übergeben?
    programm.exe config.ini kopie.ini

    Ob das Dateien sind oder Peng: egal. argv[1] ist eben nur ein C-String und in diesem Fall einer, der der Name einer Datei sein könnte. Du kannst natürlich versuchen, die Datei in Deinem Programm zu öffnen. 🙂



  • Sebastian Pizer schrieb:

    oh-jonney schrieb:

    kann ich auch dateien als parameter übergeben?
    programm.exe config.ini kopie.ini

    Ob das Dateien sind oder Peng: egal. argv[1] ist eben nur ein C-String und in diesem Fall einer, der der Name einer Datei sein könnte. Du kannst natürlich versuchen, die Datei in Deinem Programm zu öffnen. 🙂

    Wie mach ich am besten eine Prüfung, dass mein Programmcode nur ausführen soll, wenn er auch ein Parameter (sprich argv[1]) hat.???



  • oh-jonney schrieb:

    Wie mach ich am besten eine Prüfung, dass mein Programmcode nur ausführen soll, wenn er auch ein Parameter (sprich argv[1]) hat.???

    Was war argc gleich nochmal...?



  • oh-jonney schrieb:

    Sebastian Pizer schrieb:

    oh-jonney schrieb:

    kann ich auch dateien als parameter übergeben?
    programm.exe config.ini kopie.ini

    Ob das Dateien sind oder Peng: egal. argv[1] ist eben nur ein C-String und in diesem Fall einer, der der Name einer Datei sein könnte. Du kannst natürlich versuchen, die Datei in Deinem Programm zu öffnen. 🙂

    Wie mach ich am besten eine Prüfung, dass mein Programmcode nur ausführen soll, wenn er auch ein Parameter (sprich argv[1]) hat.???

    int main(int argc, char *argv[]) {
    
      if(argc != 1) {    // Oder < 1?
        std::cerr << "Parameter fehlt!" << std::endl
        return 1;
      }
    
      // Hier der eigentliche Job
    
      return 0;
    }
    

    Stefan.



  • Stefan fehlt nicht dein else?
    Weil wenn er in der If drinne ist und fertig ist, geht er doch wieder raus und macht weiter ?!



  • jonnyyy schrieb:

    Stefan fehlt nicht dein else?
    Weil wenn er in der If drinne ist und fertig ist, geht er doch wieder raus und macht weiter ?!

    Also ich will, wenn er in die if reingeht, dass er alles andere abbricht bzw. erst gar nicht anfängt...sprich wenn er in der if ist, soll er das programm beenden



  • Hol Dir ein schlaues Buch zum Lernen von C++. Kannst darin auch nachgucken, was return macht.



  • return beendet die aktuelle Funktion, in dem Fall ist das die main(...). D.h. das return beendet in dem Fall das komplette Programm.


Anmelden zum Antworten