Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- template <int size>
- struct FileBuffer {
- char buffer[size];
- FILE *file;
- int offset;
- FileBuffer (const char *fileName) {
- file = fopen(fileName, "r");
- offset = -1;
- }
- ~FileBuffer() {
- fclose(file);
- }
- void load(int offset) {
- fseek(file, offset, 0);
- fread(buffer, 1, size, file);
- this->offset = offset;
- }
- char &operator[](int pos) {
- if (offset == -1 || !(pos > offset && pos - offset < size)) {
- load(pos);
- }
- return buffer[pos - offset];
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement