Soyez le premier à donner votre avis sur cette source.
Snippet vu 13 504 fois - Téléchargée 31 fois
#include <stdio.h> #include <stdlib.h> typedef struct { int num; char nom[30]; }s_element; FILE *fichier; int main() { char choix, c; int tell; //variable pour le ftell(). s_element *personne; //ouverture du fichier en écriture (données précédentes écrasées). fichier = fopen("c:\\toto.txt", "w"); if(fichier == NULL) { printf("Erreur lors de l'ouverture du fichier\n"); return 1; } personne = (s_element*)calloc(1, sizeof(s_element)); printf("Tapez 0 comme numero pour finir la saisie\n\n"); do { printf("Veuillez entrer votre numero : "); scanf("%i", &personne->num); fflush(stdin); //on vide le tampon d'entrée //ne pas écrir dans le fichier si c le dernier élément (num=0) if(personne->num != 0) { printf("Veuillez entrer votre nom : "); scanf("%s", personne->nom); fflush(stdin); //écriture dans le fichier de l'élément personne fwrite(personne, sizeof(s_element), 1, fichier); } }while(personne->num != 0); //fermeture du fichier. fclose(fichier); printf("\nLecture des informations\n"); getchar(); //ouverture du fichier en lecture écriture fichier = fopen("c:\\toto.txt", "r+"); while(fread(personne, sizeof(s_element), 1, fichier)) { printf("%i\t%s\n", personne->num, personne->nom); } fclose(fichier); printf("Quel element souhaitez-vous changer : "); scanf("%i", &choix); fflush(stdin); //ouverture en lecture/écriture. fichier = fopen("c:\\toto.txt", "r+"); while(fread(personne, sizeof(s_element), 1, fichier)) { //si le numero est celui recherché //(le premier qui est trouvé dans ce cas) if(personne->num == choix) { //sauvegarde du curseur fichier au début de l'élément à modifier tell = ftell(fichier)-(sizeof(s_element)); printf("%i\t%s\n", personne->num, personne->nom); printf("Veuillez entrer votre numero : "); scanf("%i", &personne->num); fflush(stdin); printf("Veuillez entrer votre nom : "); scanf("%s", personne->nom); fflush(stdin); //positionnement sur l'élément à modifier fseek(fichier, tell,0); //écriture d'un élément personne à l'endroit désigné par fseek(); fwrite(personne, sizeof(s_element),1 , fichier); break; } } //fermeture du fichier. fclose(fichier); printf("Programme termine avec succes.\n"); getchar(); return 0; }
8 août 2005 à 18:48
j'ai dit ça parceque j'ai remarqué que des codes tres interessants sont perdus dans des centaines de participations qui ne sont en majorité des cas que des repetitions de ce qui a ete publié au paravant (essayez par exemple de lancer une recherche sur : convertisseur hexadicimal ou socket).
Generalement un debutant ne publie que des programmes ordinaires sur les techniques de base de la programmation (gestion simple de la memoire, acces au fichier, application des algorithmes simples...)
1 août 2005 à 13:09
D'abord on étudie et ensuite on publie, il y a un temps pour chaque chose, c'est ainsi qu'on pratique dans toutes les disciplines.
1 août 2005 à 12:46
31 juil. 2005 à 09:05
++All
30 juil. 2005 à 20:33
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.