re-salut,
j'ai une fonction qui efface la ligne d'un document qu'on lui passe en parametre.
au niveau du tout premier fgets, il me crache l'erreur "bus error (core dumped)"
mais pourquoi donc? je ne comprends vraiment pas. j'ai une autre fonction qui commence ligne pour ligne de la même mannière, et tout se déroule bien.
pouvez-vous m'aider?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 #include "biblio.h" void effacer (char * cheminfichier, int ligne) { int i; FILE * fichier; char temp[200]; //positionnement juste après la ligne à effacer if (fichier = fopen(cheminfichier, "r+") != NULL) { for (i = 0; i < ligne; i++) { fgets(temp, sizeof(temp), fichier);//ça plante ici } //quand on arrive ici on a le curseur a la fin de la ligne a supprimer. while(fgets(temp, sizeof(temp),fichier)!=NULL) { //prendre la ligne suivante et la mettre dans celle d'avant fseek (fichier, (2*(sizeof(temp)/sizeof(char))), SEEK_CUR); fputs(temp, fichier); fseek (fichier, (sizeof(temp)/sizeof(char)), SEEK_CUR); } } }
Partager