C++: Wie Pfad ermitteln, aus dem Konsolenprogramm gestartet wurde?



  • Crysis_02 schrieb:

    undesssen geht das alles 😉

    jedoch bräuchte ich noch den pfad de sprogrammes auslesen mit

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

    wenn ich

    cout<<argv [0];
    

    eingeben dann kommt auch der Pfad mit der .exe zum schluss.

    Ich kann ich die char* in einen String umwanden, um sie zu kürzen und um diese weiterzubenutzen?

    Mach einfach

    std::string directory(argv[0], strrchr(argv[0], '\\'));
    

    Achtung: Auf Back/Forward-Slash achten!
    Aber sieh dir doch SeppJs Beitrag über meinem an, der sagt mehr.

    Edit: Rechtschreibfehlä.



  • Ich habe es elesen hab aber jetzt etwas anderes, jedoch auch mit einem char array.

    char pfad[256];
    getcwd( pfad, 256);
    cout<<pfad; //Ausgabe ist hier mein gewünschter Pfad.
    

    Wie kann ich nun dieses Array in einen String umwandeln? Am besten mit Code beispiel.



  • Crysis_02 schrieb:

    Ich habe es elesen hab aber jetzt etwas anderes, jedoch auch mit einem char array.

    char pfad[256];
    getcwd( pfad, 256);
    cout<<pfad; //Ausgabe ist hier mein gewünschter Pfad.
    

    Wie kann ich nun dieses Array in einen String umwandeln? Am besten mit Code beispiel.

    Ähm, einfach einen string damit initialisieren?



  • Crysis_02 schrieb:

    hab aber jetzt etwas anderes,

    Das funktioniert auch nicht. Das Cwd kann der Pfad sein, in dem dein Programm steht, muss es aber nicht. Insbesondere kann sich das cwd zur Laufzeit ändern (daher das c in cwd).

    Was du da machst, haben schon tausende vor dir versucht. Was dabei rauskommt, wurde dir schon gesagt. Du bist anscheinend fest entschlossen, jeden Fehler, den man diesbezüglich machen kann, persönlich zu wiederholen.



  • Es get aber immer. Ich benutze diese funktion einmal beim öffnen der exe. Es ist die erste funktionen. Danach brauch sie nicht mehr.



  • Crysis_02 schrieb:

    Es get aber immer.

    Nö. Bei dir und deinem Minimalbeispiel vielleicht.



  • Wenn es die erste Funktion ist dann wurde da 0,nix verschoben etc. Dadurch gibt es keinen anderen Pfad.


  • Mod

    Crysis_02 schrieb:

    Wenn es die erste Funktion ist dann wurde da 0,nix verschoben etc. Dadurch gibt es keinen anderen Pfad.

    🙄 Gut, dass du deinen eigenen Thread so aufmerksam gelesen hast (in dem erklärt wird, warum das nicht geht, nicht deine Phantasiekonstrukte wegen denen du meinst, warum das nicht geht) oder einen die anderen 1000 Threads rausgesucht hast, in denen das Problem noch genauer beschrieben wird. Aber ich bin nicht dein Babysitter…

    MFK schrieb:

    Was du da machst, haben schon tausende vor dir versucht. Was dabei rauskommt, wurde dir schon gesagt. Du bist anscheinend fest entschlossen, jeden Fehler, den man diesbezüglich machen kann, persönlich zu wiederholen.

    qft. Aber manchen Leuten kann man eben nicht helfen.



  • Crysis_02 schrieb:

    Ich habe es elesen hab aber jetzt etwas anderes

    Eh, du weißt schon, wo Dateien gespeichert werden, wenn du keinen absoluten Pfad angibst? Ob du der open-Funktion nun filename.txt oder <cwd>/filename.txt übergibst, kommt aufs gleiche raus.



  • . o O ( Nimm doch einfach GetModuleFileName() ... )


Anmelden zum Antworten