Aus einer Datei Wort für wort lesen



  • Tach,
    wollte fragen wie man jedes Wort einzelnt heraus liest...

    ifstream file("user.dat",ios::in);
        while(!file.eof())
        {
    		char wort;
    		wort = file.get();
    		cout << wort << endl;
    
        }
    

    .get macht ja jedes Zeichen einzelnt..nun hab ich mich gefragt ob man das auch wortweise raus lesen kann 😕



  • ifstream file("user.dat",ios::in); 
        while(!file.eof()) 
        { 
            string wort; 
            cin >> wort;
            cout << wort << endl; 
    
        }
    


  • 0xdeadbeef schrieb:

    ifstream file("user.dat",ios::in); 
        while(!file.eof()) 
        { 
            string wort; 
            cin >> wort;
            cout << wort << endl; 
             
        }
    

    kann man das auch ohne 'string' programmieren?



  • Du kannst das natürlich auch in ein *char oder char[] speichern:

    #include <iostream>
    #include <fstream>
    using namespace std;
    const int MAX = 200;
    
    int main()
    {
            ifstream file("user.dat");
            char wort[MAX];
            while(file.good())
            {
                    file.getline(wort, MAX, ' ');
                            cout << wort << '\n';
            }
    }
    

    Tut der Code von 0xdeadbeef eigentlich das, was du willst?



  • Naja, da gab es eben eine Error wegen dem string. Nach dem die Standard Lösungen nichts gebracht haben...hatte ich keinen Bock mehr mich um die Uhrzeit mit dem Prob. zu beschäftigen...also hab ich das Prog. nie laufen sehen 😃



  • Du mußt string auch einbinden:

    #include <string>

    und damit das Programm dann auch so läuft wie oben angegeben solltest Du noch ein

    using namespace std;

    hinter Deine Includes schreiben.

    MfG Jester



  • Jester schrieb:

    und damit das Programm dann auch so läuft wie oben angegeben solltest Du noch ein

    using namespace std;

    hinter Deine Includes schreiben.

    ...was er wegen cout und endl wohl schon hat... oder benutzt da etwa jemand die <iostream.h> ?



  • Hallo,

    0xdeadbeef schrieb:

    [...]
        while(!file.eof()) 
    [...]
    

    CarstenJ schrieb:

    [...]
            while(file.good())
    [...]
    

    Falsche Schleifenbedingung. Bei beiden wird zu viel gelesen.
    Richtig wäre:

    while(cin >> wort)
    

    bzw.

    while(file.getline(wort, MAX, ' '))
    


  • mm wie geht jetzt das genau mit dem file wortweise ohne ,. sonerzeichen usw einlesen
    das while(cin>> wort) bring ich irgendwie nicht her?? wie geht das jetzt genau?

    string wort; 
            while(cin >> wort)  {           
                cout << wort << endl;            
            }
    

    so funzt es nid endlosschleife



  • so alt, und noch niemand ne Antwort gegeben 😞

    #include<iostream>
    #include<string>
    #include<vector>
    #include<fstream>
    int main() {
    std::string name{"text.txt"};
    std::vector<std::string> woerter{};
    std::string wort{};

    std::ifstream dokument(name);
    if (!dokument.is_open())
    	std::cout << "Fehler beim öffnen von " << name << '\n';
    else {
    	while (dokument >> wort) 
    	{
    		woerter.push_back(wort);
    	}
    	for (std::string w : woerter) std::cout << w << "\n";
    }
    dokument.close();
    

    }



  • @Feetless sagte in Aus einer Datei Wort für wort lesen:

    so alt, und noch niemand ne Antwort gegeben 😞

    Und deswegen hast du dich extra angemeldet, um mit deinem ersten Posting den Nekrophilie-Rekord zu brechen?



  • @DocShoe sagte

    Und deswegen hast du dich extra angemeldet, um mit deinem ersten Posting den Nekrophilie-Rekord zu brechen?

    Ja! Guinness-Buch der Rekorde ist mein Ziel.
    Aber ein anderes Problem hatte ich auch noch.


Anmelden zum Antworten