Pfad in String ausführen



  • Hallo,

    da ich sehr neu bin hier im Forum ist dies meine erste Frage.

    Ich habe in einem String in C++ einen Pfad stehen:

    <pre>
    #include<iostream.h>

    void main()
    {
    string pfad;
    pfad="C:\\test\\test.txt";
    //jetzt will ich die Datei test.txt öffnen, aber wie geht das????

    };
    </pre>

    jetzt will ich die Datei test.txt öffnen, aber wie? Das ist mein Problem, ich habe es auch schon mit system(pfad); vesucht, hat aber nicht funktioniert.

    Was mache ich falsch?

    mfg

    utzer



  • Recht schlimm, dein Code. Fängt mit der ersten Zeile an:

    #include<iostream.h>  // Nicht-Standard-Header
    #include <iostream>   // wäre richtig
    
    void main()   // falsch
    int main()    // richtig
    
    string pfad; // Kein Namensraum angegeben
    std::string pfad; // eine Möglichkeit
    using namespace std; // andere Möglichkeit (nachher kann man 'string' schreiben)
    

    (Text-)Dateien bearbeitet man grundsätzlich mit FileStreams (Header <fstream> ). Für anderes reicht die Standardbibliothek nicht aus.

    Und benutze bitte [cpp]-Tags, das HTML- <pre> funktioniert hier nicht.



  • Wenn du die Datei lesen willst, kannst du fopen+fread oder ifstream benutzen.



  • Hallo,

    ich dachte eigentlich auch nicht an das bearbeiten der Datei, sonder ich möchte, dass sich dann der Editor startet, und darin die Datei angezeigt wird.

    So funktioniert es ja:

    system("C:\\test\\test.txt");
    

    so wird der Editor gestartet und die Datei test.txt angezeigt. Jetzt ist es allerding in meinem Pogramm so, dass der Pfad in einem String vorliegt und nicht "fertig" beim programmiere eingegeben werden kann.

    Wie löse ich dann das???

    mfg

    utzer



  • system(pfad.c_str());
    

    Ist aber nicht gerade portabel. Beachte bitte auch die Hinweise aus meinem vorigen Post; das ist nicht C++, was du da gemacht hast.



  • Hallo,

    ok, vielen, vielen, Dank, das hat super funktioniert!

    überglücklich: utzer



  • ein Paradebeispiel für die Ignorierung sämtlicher Warnungen ^^



  • @ utzer:
    Nochmals: Bitte schau dir meinen ersten Post in diesem Thread genau an. Ich hab die Bemerkungen dort nicht aus Spass aufgeschrieben. Ich hoffe, du nimmst diese zur Kenntnis.



  • Hallo,

    Nexus schrieb:

    @ utzer:
    Nochmals: Bitte schau dir meinen ersten Post in diesem Thread genau an. Ich hab die Bemerkungen dort nicht aus Spass aufgeschrieben. Ich hoffe, du nimmst diese zur Kenntnis.

    ja, ich habe die Warunungen schon gleich zur Kenntnis genommen. 🙂
    mein Cod sieht jetzt so aus:

    #include <iostream>
    using namespace std;
    
    int main()
    {
    string pfad;
    pfad="C:\\test\\test.txt";
    system(pfad.c_str());
    system("pause");
    
    return 0;
    };
    

    Wie ist das eigentlich mit dem

    return 0;
    

    was macht das und wofür ist das gut? 😕

    mfg

    utzer



  • Mit return kannst du den Rückgabewert einer Funktion bestimmen. Beispielsweise könnte eine Funktion "Addiere" zwei Parameter entgegennehmen (Operand1+Operand2) und das Ergebnis per return-Anweisung zurückgeben.

    //Rückgabe        Parameter
    double Addiere(double o1,double o1);
    

    Das gilt auch für die main-Funktion. Deren Rückgabewert kann man z.B. in einer Batch-Datei als errorlevel (typisch: if errorlevel 1 ...) weiterverarbeiten.

    Da du offensichtlich einfach drauf losprogrammierst, empfehle ich dir, dir ein gutes Anfänger-Buch oder -Tutorial 'reinzuziehen. Der Aufbau einer Funktion zählt ebenso wie Datentypen zu den absoluten Grundlagen und wird in jeder Einsteigerlektüre behandelt.

    Übrigens kannst du dir das Semikolon hinter der schließenden Klammer der main-Funktion sparen.



  • Hallo,

    ok, vielen Dank für die Information, so ein Buch habe ich schon, ich kam allerdings noch nicht zu lesen. 😞 (Bin Schüler, 15, habe sehr wenig Zeit)

    Naja, werd mal am Wochenende reinschauen...

    mfg

    Doran


Anmelden zum Antworten