Vous devez vous connecter pour exécuter votre code.

Insertion dans fichier homogène (MD 5.9)

MD 5.9 — Écrivez une fonction qui insère un entier à un indice donné dans un fichier binaire d'entiers. Les éléments suivants doivent être décalés.

#include <stdio.h> int file_insert_int(const char *filename, long index, int value) { FILE *f = fopen(filename, "r+b"); if (f == NULL) return -1; fseek(f, 0, SEEK_END); long n = ftell(f) / sizeof(int); if (index < 0 || index > n) { fclose(f); return -1; } // Décaler les éléments vers la droite for (long i = n - 1; i >= index; i--) { int val; fseek(f, i * sizeof(int), SEEK_SET); if (fread(&val, sizeof(int), 1, f) != 1) { fclose(f); return -1; } fseek(f, (i + 1) * sizeof(int), SEEK_SET); if (fwrite(&val, sizeof(int), 1, f) != 1) { fclose(f); return -1; } } // Écrire la nouvelle valeur fseek(f, index * sizeof(int), SEEK_SET); fwrite(&value, sizeof(int), 1, f); int err = ferror(f) ? -1 : 0; fclose(f); return err; } int main() { return 0; }