Ho un file di testo nel seguente formato:Voglio cin a leggere fino a quando ' n', ma non posso usare getline
info
data1 data2
info
data1 data2 data3 data4...
Il problema è: il conteggio (e lunghezza) dei dati può essere molto grande e causa problemi di runtime quando viene utilizzato getline()
. Quindi non riesco a leggere l'intera riga in un std::string
. Ho provato quanto segue:
for(int i=0; i<SOME_CONSTANT ; i++){
string info, data;
cin >> info;
while(cin.peek() != '\n' && cin >> data){
// do stuff with data
}
}
Tuttavia cin.peek()
non ha fatto il trucco. Le informazioni vengono lette nei dati nel ciclo while e il programma mette a posto le cose. Come posso risolvere questo?
Hai provato 'std :: string :: max_size' come secondo parametro per' std :: istream :: getline'? –
Come sarebbe la dimensione dei dati un problema? Quanto sono lunghe le linee? –
fino a 150.000 caratteri – Varaquilex