[FRAGE] Programm erkennen lassen in welchem Ordner es sich die Datei befindet + Datei per .exe oder cmd runterladen



  • Servus.

    Ich hab da 2 Fragen

    Ich wollte dieses Programm etwas ändern:

    #include <fstream>
    
    using namespace std;
    
    int main()
    {
    
        fstream f;
    
        f.open("meinedatei.txt", ios::out);
        f << "Hallo welt" << endl;
        f.close();
    }
    

    Anstatt

    f.open("meinedatei.txt", ios::out);
    

    soll eine Datei aus einem Unterordner geöffnet werden.
    Also meien exe-Datei liegt in einem Ordner in dem sich außerdem der Ordner "lol" befindet.
    meinedatei.txt liegt im Ordner "lol".
    Wie kann ich darauf zugreifen?

    Gib es in der Windows-Konsole einen ähnlichen Befehl wie bei Linux "wget"
    um Datein aus dem Internet zu laden? Oder gibt es vielleicht eine möglichkeit um das über eine exe zu machen?

    mfG



  • xumbu schrieb:

    Anstatt

    f.open("meinedatei.txt", ios::out);
    

    soll eine Datei aus einem Unterordner geöffnet werden.
    Also meien exe-Datei liegt in einem Ordner in dem sich außerdem der Ordner "lol" befindet.
    meinedatei.txt liegt im Ordner "lol".
    Wie kann ich darauf zugreifen?

    Dazu müsstest du erst einmal wissen, wo die exe-Datei sich befindet. Das geht mit standard C++ nicht.

    xumbu schrieb:

    Gib es in der Windows-Konsole einen ähnlichen Befehl wie bei Linux "wget"
    um Datein aus dem Internet zu laden? Oder gibt es vielleicht eine möglichkeit um das über eine exe zu machen?

    Nein. Es gibt jedoch Bibliotheken wie curl dafür. Und unter Linux ist das ein Programm, kein Befehl.



  • f.open("lol/meinedatei.txt", ios::out);
    


  • "lol/meinedatei.txt" = Exe befindet sich im gleichen Ordner wie lol
    "../lol/meinedatei.txt" = Exe befindet sich einen Ordner über lol



  • Kóyaánasqatsi schrieb:

    f.open("lol/meinedatei.txt", ios::out);
    

    _) schrieb:

    "lol/meinedatei.txt" = Exe befindet sich im gleichen Ordner wie lol
    "../lol/meinedatei.txt" = Exe befindet sich einen Ordner über lol

    Beide falsch. Der angegebene Pfad ist relativ zum Arbeitsverzeichnis, nicht dem Verzeichnis wo sich die exe-Datei befindet.



  • Also mit

    f.open("lol/meinedatei.txt", ios::out);
    

    geht das leider nicht.
    Wenn das mit dem normalen c++ nicht möglich ist, gibt es dann nicht vielleicht ein cmd befehl um eine Datei aus dem Ordner in dem man sich befindet in einen Unterordner(fals man das so nennt) zu verschieben?
    Dann könnte ich die Datei ja einfach zuerst in dem Ordner erstellen wo sich auch die Exe befindet und dann mit "system();" verschieben.

    /edit

    ok so hats geklappt.

    #include <stdio.h>
    #include <stdlib.h>
    #include <fstream>
    
    using namespace std;
    
    int main()
    {
    
        fstream f;
    
        f.open("meinedatei.txt", ios::out);
        f << "Hallo welt" << endl;
        f.close();
    
        system("move meinedatei.txt lol");
    
    }
    


  • und nochmal zu der Frage, wie ich eine Datei runterladen lassen kann. Ich benutz den QT Creator.(vielleicht gibts damit ja möglichkeiten für sowas.)



  • wget gibt's auch für Windows als Bestandteil von cygwin http://www.cygwin.com/packages/



  • Hallo xumbu,

    Wenn du Qt nehmen willst, schau dir mal QFtp an.



  • ok ich habs jetzt mit qftp gemacht. dann muss ich logischerweise zwar nen ftp server benutzen... geht aber auch


Log in to reply