Witam,
Nie bardzo mogę sobie poradzić z komunikatem jaki dostaję przy uruchomieniu programu:
istream_iterator is not dereferencable, sama kompilacja przebiega prawidłowo bez najmniejszego nawet ostrzeżenia. Ten sam kod kompilowany przez gcc uruchamia sie i działa bardzo szybko nawet z dużymi plikami.
Może ma ktoś jakieś sugestie? Albo może pomysł jak zrobić to samo tylko innym sposobem?
#include <fstream>
#include <iterator>
#include <algorithm>
using namespace std;
int main() {
typedef istream_iterator<unsigned char> input_iter_t;
const off_t SIZE = 4;
char before[SIZE] = { 0x12, 0x34, 0x56, 0x78 };
char after[SIZE] = { 0x69, 0x74, 0x65, 0x72 };
fstream filestream("numbers.exe", ios::binary | ios::in | ios::out);
if (search(input_iter_t(filestream), input_iter_t(), before, before + SIZE) != input_iter_t()) {
filestream.seekp(-SIZE, ios::cur);
filestream.write(after, SIZE);
}
}
Dzieki,
J.