Bonjour,
J'ai un petit projet de gestion de bibliothèque en C que je suis en train de réaliser, et je ne trouve pas d'aide sur les forums pour ça. J'ai un fichier texte dont chaque ligne représente des données d'un livre en bibliothèque, et j'aimerais parcourir chaque ligne jusqu'à trouver le livre qui m'intéresse, et modifier le dernière caractère de la ligne (0 ou 1, selon si le livre est dispo ou non). Je pensais donc utiliser fgets sur chaque ligne, analyser si c'est le livre qui m'intéresse, et une fois trouvé, mettre le curseur en retrait d'un ou deux crans pour changer le caractère. Mais ça ne marchait pas. J'ai alors créer le fichier "test.txt" suivant :
123
456
789
aze
rty
uiop
qsdf
et cherché où était le curseur après un fgets avec ce code :
En sortie j'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 int main(){ FILE *f=fopen("test.txt", "r+"); int i; for(i=0;i<6;i++) printf("%c", fgetc(f)); int size =100; char inter[size]; fgets(inter, size, f); printf("\ninter : %s", inter); fclose(f); }
123
45
azeer : 6
Et là je sèche ! Je comprends les deux premières lignes. Ensuite pour moi la 3è devrait être "inter : 6" et placer le curseur au début de la ligne suivante (789), mais visiblement, il ne m'affiche pas cette ligne-là, et m'affiche la suivante par-dessus le premier affichage ! Est-ce que quelqu'un peut m'expliquer pourquoi ? Merci beaucoup !
Partager