einem string eine .txt datei zu weisen?



  • So ließ dir mal folgendes durch

    std::string
    std::ifstream

    Diese beiden Sachen brauchst du um mit Dateien zu handtieren.



  • wurstuk schrieb:

    Du hasst es erfast unskilled. ^^

    aber auch mit std::fstream versteh ichs nicht...
    weil wo sagt mann dem String denn was er überhaupt einlesen soll?

    fg Wurst

    Was meinst du, was Eric da gepostet hat? 😛
    das ist in 3 Zeilen gemacht - jz überleg mal, was vor der geposteten Zeile noch kommen muss (die Reihenfolge der ersten beiden Zeilen kann man so gar tauschen) - zusammen mit den beiden Klassen sollte das ja jz nicht all zu schwer sein...

    bb



  • hmmm ganz ehrlich... ich glaube ich bin total bescheuert aber ich komm nicht drauf... Das ich gar nicht weiß was klassen sind weil das in meinem Buch erst in 2 kapiteln kommt tut glaube ich nichts zur Sache oder?^^

    fg Wurst



  • OK es hat sich erledigt^^ nach ungefähr 5 stunden und dem durchsuchen von 50 anderen C++ foren bin ich fündig geworden^^



  • wurstuk schrieb:

    OK es hat sich erledigt^^ nach ungefähr 5 stunden und dem durchsuchen von 50 anderen C++ foren bin ich fündig geworden^^

    Alternativ hättest du dir die Links von Firefighter anschauen können. 🙄



  • hab ich auch aber da hab ich erst nicht die bohne verstanden^^
    also nicht wegen dem englisch sondern weil ich ichs irgendwie nicht gecheckt hab^^



  • dann kauf dir nen C++ Buch ><
    und was verstehst du denn nun nicht?

    bb



  • ich hab nin C++ Buch das ich auch gerade durch arbeite 😃 Ich will nehmlich mal ein ganz großer programmiere werden! 😃

    ne ne spaß beiseite also ich hab ja ein c++ buch aber dis is irgendwie komisch aufgebaut weil manchmal Sachen kommen die erst in späteren Kapiteln behandelt werden...-.-

    also ich habs jetzt so gelöst:

    #include <iostream> 
    #include <fstream>
    #include <string>
    
    using namespace std; 
    
    int main() 
    { 
    	string word;
    	fstream f;
    	f.open("hallo.txt");
    	getline(f, word);
    	cout << word;
    
    }
    

    So und nun ist mir unklar was f ist. Ist es jetzt eine Variable vom typ fstream(?), was ich aber eigentlich nicht glaube. ja also eig. ist das meine frage ^^ was ist f oder eher was macht fstream daraus?

    fg Wurst



  • f ist ein Objekt von fstream - eine Variable wenn man so will.
    fstream selbst ist ein Datentyp bzw. eine Klasse. Spaeter wirst du noch lernen wie du dir selbst sowas machen kannst.

    Wenn du mehrere Dateien gleichzeitig oeffnen willst, brauchst du dann natuerlich auch mehrere Objekte.

    Was mir aufgefallen ist: Du ueberpruefst nicht, ob die Datei erfolgreich geladen wurde. Es koennte ja z.B. sein, dass die Datei nicht existiert oder dass sie gerade von einem anderen Programm geoeffnet wurde und zomit der Zugriff verweigert wird.

    Dies kannst du so pruefen:

    #include <iostream>
    #include <fstream>
    #include <string>
    
    using namespace std;
    
    int main()
    {
        string word;
        fstream f;
        f.open("hallo.txt");   // kann man eigentlich auch im Konstruktor schreiben
                               // dann spart man sich eine Zeile
                               // so: fstream f("hallo.txt");
    
        if (!f)
        {
           cerr << "Fehler beim oeffnen";
           return -1;
        }
        getline(f, word);
        cout << word;
    
    }
    

    Gruss
    Cartman



  • OK danke 😃 aber da tut sich schon wieder ne frage auf^^

    was ist denn cerr?

    achso c"error" oder sowas ne?^^

    und was macht return -1? soll ich euch was sagen ich werds einfach mal kopieren und einfügen und gucken was sich tut und was anders und dann werd ich das hallo.txt löschen um mir die Fehler Meldung anzugucken^^

    fg Wurst^^

    P.S. OK bitte sagt es mir^^ weil bei cerr kommt bei mir genau das selbe wie bei einer normalen Ausgabe(cout) und durch das return -1 verändert sich auch nicht groß was^^



  • wurstuk schrieb:

    OK danke 😃 aber da tut sich schon wieder ne frage auf^^

    was ist denn cerr?

    achso c"error" oder sowas ne?^^

    und was macht return -1? soll ich euch was sagen ich werds einfach mal kopieren und einfügen und gucken was sich tut und was anders und dann werd ich das hallo.txt löschen um mir die Fehler Meldung anzugucken^^

    fg Wurst^^

    cerr leitet auf einen anderen Ausgabestrom (genauer: Den Fehlerausgabestrom), dies ist z.B. nuetzlich, wenn man will, dass die Fehlerausgaben in eine Datei gespeichert werden (z.B. durch "MeinProgramm > Fehlerausgaben.txt" oder so aehnlcih unter Windows) und fuer anderes.

    return -1 beendet das Programm - bzw. gibt den Wert -1 zurueck (von main()). Um auch in Funktionen das Programm beenden zu koennen gibt es den Befehl exit() aus der <cstdlib> Headerdatei.

    gruss
    Cartman



  • Wieso machst du nicht einfach genau das, was in deinem Buch beschrieben ist und genau dann, wann es der Autor möchte?

    bb



  • das is mal ne tolle überschrift



  • @unskilled wollte ich ja eig. auch weil in meinem Buch stand in einem vorherigen Kapitel schon mal was sowas ähnliches und dis wollte ich ja benutzen^^
    (siehe themastart)

    ok danke eric cartamn

    fg wurst


Anmelden zum Antworten