ich eine Textdatei in folgendem Format haben:möchte ich cin bis ‚ n‘ lesen, aber ich kann nicht verwenden getline
info
data1 data2
info
data1 data2 data3 data4...
Das Problem ist: die Zahl (und Länge) der Daten sein kann sehr groß und verursacht Laufzeitprobleme, wenn getline()
verwendet wird. Also kann ich die ganze Zeile nicht in eine std::string
lesen. Ich habe versucht, die folgenden:
for(int i=0; i<SOME_CONSTANT ; i++){
string info, data;
cin >> info;
while(cin.peek() != '\n' && cin >> data){
// do stuff with data
}
}
jedoch cin.peek()
nicht den Trick tat. Die Informationen werden in die while-Schleife eingelesen und das Programm versäumt Dinge. Wie kann ich das beheben?
Haben Sie 'std :: string :: max_size' als zweiten Parameter für' std :: istream :: getline'? –
Wie wäre die Größe der Daten ein Problem? Wie lang sind die Linien? –
bis zu 150.000 Zeichen – Varaquilex