Probleme beim Einlesen einer Text-Datei



  • gut...gebe mich geschlagen 😃



  • Hallo,
    die Version von Blue Tiger funktioniert 1a.

    Aber die hier scheint nicht zu gehen, warum ?

    string t,s,v,n;
    int p;
    istringstream iss(t);
    ifstream fin("Test.txt");
    
    while(!fin.eof())
    { 
       if(!file.eof()) break;
       getline(fin,t);
       iss>>n>>v>>p>>s;
       cout>>n>>v>>p>>s;
    }
    /*
    Test.txt
    Name Vorname Zahl  Ort
    Name Vorname Zahl  Ort
    .
    .
    . 
    */
    

    Müsste doch theoretisch funktionieren oder ?

    Danke.



  • lightning schrieb:

    if(!file.eof()) break;

    wohl eher:

    if(file.eof()) break;
    


  • Das stimmt allerdings, aber damit ist der Fehler nicht beseitigt.

    Ich bekomme diese Ausgabe:

    -858993460

    Und zwar für jede Zeile in der Textdatei !

    Was könnte noch falsch sein ?

    Danke im Voraus.



  • Ein paar Fragen
    Was ist file (meinst du fin?). Das ist aber an der Stelle sinnlos.
    Wo füllst du iss mit t ? Da oben ist das zu zeitig, immerhin ist t noch nicht belegt.
    Was soll das mit dem cout (einlesen ?)
    Also warum nicht:

    string t,s,v,n; 
    int p; 
    stringstream iss; 
    ifstream fin("Test.txt"); 
    
    while(getline(fin,t)) 
    { 
       iss.str(t);
       iss >> n >> v >> p >> s; 
       cout << n << v << p << s; 
    }
    


  • Hallo,

    ja die Fehler "cout>>" und "file" habe ich nur hier gemacht, nicht im Quellcode.
    Ich habe den Fehler auch gefunden.
    Ich dachte wenn in t der string steht, dann wird er dem iss dynamisch zugewiesen.
    Ich habe die Erstellung von iss in der schleife nach der getline Anweisung gemacht.

    Jetzt geht alles !

    Trotzdem Danke.


Anmelden zum Antworten