Problem mit stringstream



  • Hallo,
    ich habe ein kleines Problem mit der Klasse stringstream:
    Ich lege ein Objekt an:

    std::stringstream inout; char line[clLogLine];
    

    Dann schreibe ich etwas hinein und lese es mit getline wieder aus:

    inout << "TrainDataOraHandler::insertTrainTripData - Inserting data for train ID " << pSbNd->trainID;
          inout.getline(line, clLogLine); AMLOG (cModAM_TrainData, cDebStd, line);
    

    Funktioniert so weit. Mache ich dies ein zweites Mal auf das selbe Objekt, liefert getline() aber einen Leerstring zurueck:

    inout << "TrainDataOraHandler::insertMessage - Message insertion succeeded.\n";
              inout.getline(line, clLogLine); AMLOG (cModAM_TrainData, cDebStd, line);
    

    Warum funktioniert der zweite Vorgang nicht?
    Danke fuer Hinweise und viele Gruesse - Ulrich



  • PS: Lege ich ein zweites stringstream-Objekt an und mache den zweiten Vorgang auf dieses Objekt, funktioniert es:

    inout2 << "TrainDataOraHandler::insertMessage - Message insertion succeeded.\n";
              inout2.getline(line, clLogLine); AMLOG (cModAM_TrainData, cDebStd, line);
    


  • Fehlt beim ersten nicht noch das Zeilenende?



  • Funktioniert aber.



  • Hallo Fellhuhn,
    ich habe jetzt mal das Zeilenende beim ersten Abschnitt ergaenzt und damit funktioniert es. Vielen Dank fuer den Hinweis!
    Viele Gruesse - Ulrich


Anmelden zum Antworten