si quelqu un m aide à convertir cette fonktion en C++ ; c écrit en C ;
void remplacer (char *filename, char *str, char *occ)
{
FILE *f = fopen(filename, "rb");
char *buf;
int size;
if(!f) return;
fseek(f, 0, SEEK_END);
size = ftell(f);
if((buf = (char*)malloc(size+1))) {
char *pbuf = buf;
int lenocc = strlen(occ), lenstr = strlen(str), last = 0;
fseek(f, 0, SEEK_SET);
buf[fread(buf, 1, size, f)] = 0;
fclose(f);
/* On supprime le fichier dans le cas ou str est plus petit que occ ce qui laisserait des caractères "parasites" à la fin du fichier */
remove(filename);
/* Cependant, si la création du nouveau fichier échoue, on pert l'ancien OOPS */
if((f = fopen(filename, "wb"))) {
while((pbuf = strstr(pbuf, occ))) {
int pos = (pbuf-buf);
if(pos) fwrite(&buf[last], 1, (pos-last), f);
fwrite(str, 1, lenstr, f);
pbuf += lenocc; last = (pbuf-buf);
}
fwrite(&buf[last], 1, size-last, f);
}
free(buf);
}
if(f) fclose(f);
}