Domanda

Sto cercando di fare il mio file di analisi più robusto. L'utilizzo di un ifstream, come posso garantire seekg mi tiene in una posizione valida all'interno del file?

Questo non funziona:

while(m_File.good() && m_File.peek() != EOF)
{ ...a seekg operation moves file position past end of file... }

Suppongo che l'iteratore corrente è stato spinto strada oltre l'iteratore fine, quindi il peek () non è mai vera.

È stato utile?

Soluzione

No, non c'è modo di fare questo, a corto di trovare l'offset della fine del file e fare in modo che non cerchi di là di esso, che provoca un comportamento indefinito - si può ovviamente aumentare la dimensione del file da scrittura.

Altri suggerimenti

Se si tratta di un errore quando si raggiunge una brutta posizione (ad esempio, non dovrebbe accadere) si può tentare di impostare la eccezione flusso mascherare , e intercettare l'eccezione adeguate al di fuori del ciclo while. In tal caso sarebbe la soluzione "pulita".

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top