c++ - How to read file from last cursor position? -
char buf[100]; int bufsize = 100; int lastposition = 0; while(!myfile.eof()){ myfile.read(buf,100); myfile.seekg(lastposition); lastposition = lastposition + bufsize; }
i try read 100 bytes myfile , set cursor position 100. byte. want read 100. byte 200. byte ... till end of file. i'm doing true?
i assume myfile
istream
.
in case, not way works:
read()
moves file pointer when reading, no needseek()
every time- the loop have provided example overwrites buffer each time chunck read, without doing it
you should either try this:
char buf[100]; int bufsize = 100; while(!myfile.eof()){ myfile.read(buf, bufsize); // chunck here. }
or this:
char * thewholefile; int pos = 0; int chuncksize = 100; thewholefile = new char[myfile.tellg()]; while(!myfile.eof()){ myfile.read(thewholefile + pos, chuncksize); pos += chuncksize; } // thewholefile contains whole file @ point. don't forget delete @ point!
i did not handle last chunck here. size can between 0 , 100. can use myfile.tellg() % chuncksize
determine actual size (for example).
for further details, have @ related question on stack overflow.
Comments
Post a Comment