Weiss nicht wie ich es betiteln soll :O)



  • Hallo
    Ich schreibe seit einiger Zeit an einem kleinen Tool.

    Mein Problem ist im Moment, ich fordere den User auf, den pfad zu meinem Program einzugeben. Nun habe ich den Namen in einem Array stehen und will nun alle Pfad angaben in meinem Prog durch die eingabe des Users ersetzten, damit ich in dem Programm auch meine Dateien aufrufen kann.

    Ich weiss jetzt nur net wie ich die Eingabe des Pfades aus dem Array in den Code einbauen kann.
    zB beim datein öffnen und schreiben=
    ifstream in("C:\\Dev-Cpp\\Projekte\\netzwerkconfig\\name.txt");
    hier müste anstelle von c:\\dev..... die eingabe vom user aus dem Array stehen....nur weiss ich absolut nicht wie ich das hinbekommen könnte.

    Dankeschön für euere Hilfe 🤡

    Hier einfach mal die stelle im Code:
    int main()
    {
    int eingabe;
    char name1[30];
    char name2[30];
    char netzwerk[40];
    char pfad[40];
    int i;
    int j;
    unsigned short ip[4];
    unsigned short ip2[4];
    memset(netzwerk ,0, sizeof(netzwerk)); //Array auf 0 setzen
    memset(pfad ,0, sizeof(pfad)); //Array auf 0 setzen

    // Erster Programmstart?
    ifstream in("C:\\Dev-Cpp\\Projekte\\netzwerkconfig\\name.txt");
    in>> netzwerk >>pfad;
    in.close ();
    if(strlen(pfad)==0)
    {
    cout<<"Bitte geben Sie den Pfad an wo das Programm liegt ";
    cin>> pfad;
    ofstream netz ("C:\\Dev-Cpp\\Projekte\\netzwerkconfig\\name.txt", ios::app);
    if (netz)
    {
    netz << netzwerk <<endl;
    netz.close ();
    }
    else
    {
    cerr << "Datei exsistiert nicht!";
    }



  • hmmm

    pfadabfragen ist öde 👎

    entweder ( weiss nicht ob das mit standard geht )
    du checkst wo die exe liegt und hast den pfad. ist ein befehl. wie gesagt weiss nicht ob das im standard drin ist.

    oder

    du hast eine .ini datei, wo der pfad drinnen steht. kann sich auch config nennen 🙂

    du liesst den pfad beim programmstart ein und verwendest, oder gibts aus, das der pfad nicht stimmt.

    warum du char feld nimmst versteh ich nicht. also wenn du nicht die string klasse nimmst bist selber schuld. bevor du weitermachst SCHAU DIR STRING klasse an. sorry ist so, sonst brauchst gar nicht weiter programmieren, oder magst du retro feelings beim programmieren?

    was noch geil ist, du deklariest einfach mal so paar int variablen die du eh nicht benutzt. geil 👍



    • cpp-tags
    • string & co. is goil:
    #include <string>
    #include <iostream>
    
    int main()
    {
        std::string s1,s2;
        std::cin>>s1>>s2;
        std::cout<<(s1+s2)<<std::endl;
        return 0;
    };
    


  • Den Pfad von der EXE kriegst du doch, wenn du die main so deklarierst:

    int main(int argc, char **argv)
    

    als argv[0]



  • YASC schrieb:

    Den Pfad von der EXE kriegst du doch, wenn du die main so deklarierst:

    int main(int argc, char **argv)
    

    als argv[0]

    muss nicht sein. Wenn der Pfad, in dem dein Programm liegt, in der PATH-Variable liegt, kann es aus jedem beliebigen Pfad aufgerufen werden. Und _AFAIK_ legt der STandard nicht fest, ob dann der CWD-Pfad oder der Pfad, in dem die exe liegt oder nur der Name der exe selber in argv[0] uebergeben wird.


Anmelden zum Antworten