main Argumente



  • Hi,
    ich möchte Argumente benutzt

    int main(int argc, char *argv[])
    

    um Pfade von Dateien zu bekommen.

    Wenn der Dateipfad aber etwas länger ist, wie "C:\Dokumente und Einstellungen\Administrator\Desktop", dann bekomme ich weniger als die Hälfte des Strings.

    Wenn der Pfad aber kurz ist, wie z.B.: "C:\" dann klappt alles..

    Aber was kann ich dagegen machen, dass ich nicht nur die ersten 10(oder mehr) Zeichen bekomme?



  • mainn schrieb:

    Hi,
    ich möchte Argumente benutzt

    int main(int argc, char *argv[])
    

    um Pfade von Dateien zu bekommen.

    Wenn der Dateipfad aber etwas länger ist, wie "C:\Dokumente und Einstellungen\Administrator\Desktop", dann bekomme ich weniger als die Hälfte des Strings.

    Wenn der Pfad aber kurz ist, wie z.B.: "C:\" dann klappt alles..

    Aber was kann ich dagegen machen, dass ich nicht nur die ersten 10(oder mehr) Zeichen bekomme?

    DAs liegt an den leerzeichen. wenn du C:\Dokumente und Einstellungen\Administrator\Desktop übergibst , dann dürfte argv[1] so aussehen:
    "C:\Dokumente", in argv[2] steht dann "und" etc.

    Starte dein Programm mal so: programm "C:\Dokumente und Einstellungen\Administrator\Desktop"

    Aslo mit ""



  • C: ist kein Pfad, sondern ein Laufwerk. C:\ waere der Pfad.



  • Aber ich habe es verknüpft..
    Also wenn ich eine txt Datei öffne, wird diese direkt mit dem Programm geöffnet..
    Wo kann ich denn da die " einfügen?



  • mainn schrieb:

    Aber ich habe es verknüpft..
    Also wenn ich eine txt Datei öffne, wird diese direkt mit dem Programm geöffnet..
    Wo kann ich denn da die " einfügen?

    Hmm? ich kapier net was du meinst.

    Ich meine: starte dein prog so:

    programmname "pfad"

    und nicht

    programmname pfad



  • Wenn du eine Textdatei öffnest, wird sie ja standardgemäß mit dem Editor geöffnet.
    Und so habe ich das auch bei meinem Programm...



  • mainn schrieb:

    Wenn du eine Textdatei öffnest, wird sie ja standardgemäß mit dem Editor geöffnet.
    Und so habe ich das auch bei meinem Programm...

    Und wo ist nun das problem?



  • Dass das mit den Argumenten (der Pfad) nicht funktioniert



  • ich denke auch dass das Leerzeichn möglicherweise Schuld sein könnte.

    Ich kann dir nur empfehlen, mal mit einem Debugger drüber zu steppen bzw. alle Elemente ausgeben zu lassen:
    - stimmt der argc-Wert wirklich?
    - Ausgabe der argv-Strings

    Kommt jetzt darauf an, wie du dein Programm startest.
    Wahrscheinlich wird die Datei, mit welcher du dein Programm öffnest als 2. Parameter --> [1] mitgegeben. Der [0]. Parameter ist meistens die exe-Datei selbst. Kann aber auch anders sein! Deshalb probieren geht über studieren 😉

    mfg (c)h


Anmelden zum Antworten