Probleme recuperation de données c
hadrienlearn
-
hadrienlearn -
hadrienlearn -
Bonjour,
Un nouveau problème se présente a moi.
Lors de la récupération des donnée dans mon fichier data, les données ne sont pas correctement emmagasiner dans la structure profil.
save.data
ma fonction:
print:
J'ai beaux tester de nombreuses methode il semble que le fscanf ne marche pas!
Merci d'avance a ceux qui souhaiterai m'aider :).
Un nouveau problème se présente a moi.
Lors de la récupération des donnée dans mon fichier data, les données ne sont pas correctement emmagasiner dans la structure profil.
save.data
Hadrien 12313215 Laurent 12321321 Helory 1231231
ma fonction:
int load_rep(void) { int i; signed char n_name[MAX_NAME_CHAR], n_tel[MAX_TEL_CHAR]; FILE *save = fopen("save.data", "r"); if(save==NULL) return 1; int size = get_file_size(save); myRep = realloc(myRep, size*sizeof(pers)); printf("size : %d\n", size); for(i=1;i<size;i++) rep_size++; printf("Fichier data trouvée!\n"); printf("Lancement de la récupération des données\n"); for(i=0;i<rep_size;i++) { fscanf(save, "%s %d ", myRep[i].name, myRep[i].tel); printf("NAME : %s | TEL : %s\n", myRep[i].name, myRep[i].tel); } printf("Données récupérer avec succée\n"); fclose(save); return 0; }
print:
size : 3 Fichier data trouv├®e! Lancement de la r├®cup├®ration des donn├®es NAME : | TEL : NAME : | TEL : NAME : u | TEL : d Donn├®es r├®cup├®rer avec succ├®e
J'ai beaux tester de nombreuses methode il semble que le fscanf ne marche pas!
Merci d'avance a ceux qui souhaiterai m'aider :).
Configuration: Windows / Chrome 97.0.4692.99
A voir également:
- Probleme recuperation de données c
- Fuite données maif - Guide
- Supprimer les données de navigation - Guide
- Logiciel de récupération de données - Guide
- Convertisseur récupération de texte - Guide
- Trier des données excel - Guide
2 réponses
En effet il manque une tres grosse partie de mon programme que je n'ai pas mis pour ne pas surcharfer le post.
voici la version dans sa globalité
Merci pour la réponse rapide c'est assez impressionnant le travail que vous effectuer sur se forum
voici la version dans sa globalité
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <stdbool.h> #define MAX_NAME_CHAR 20 #define MAX_TEL_CHAR 9 #define REP_SIZE 3 typedef struct person { char name[MAX_NAME_CHAR]; char tel[MAX_TEL_CHAR]; }pers; void input_person(pers *sp); void input_rep(void); void print_rep(void); int find_in_rep(void); void save_rep(void); int load_rep(void); int get_file_size(FILE *file); void add_profil(void); // fonction ultime pers *myRep; size_t rep_size=1; int main(int argc, char *argv[]) { bool load = false; int choose, s1, s2, size; myRep = calloc(rep_size, sizeof(pers)); FILE *tryfindfile = fopen("save.data", "r"); if(tryfindfile==NULL) { printf("Echec de la recherche du fichier data\n"); input_rep(); } else load = true; if(load==true) load_rep(); print_rep(); do { do { printf("\nMenu:\n"); printf("1-afficher le contenu du répertoire\n"); printf("2-chercher le numéro d'une personne\n"); printf("3-sauvegarder le répértoire\n"); printf("4-ajouter un profil\n"); printf("5-quitter le programme\n"); printf("Votre choix : "); scanf("%d", &choose); } while(choose < 1 || choose > 5); switch(choose) { case 1: print_rep(); break; case 2: if(find_in_rep()==0) printf("ERREUR : NOM INTROUVABLE\n"); break; case 3: save_rep(); break; case 4: add_profil(); break; default: break; } } while(choose!=5); save_rep(); return 1; } void input_person(pers *sp) { printf("Name : "); scanf("%s", sp->name); printf("Tel : "); scanf("%s", sp->tel); return; } void input_rep(void) { int i; printf("Veuillez saisir votre premier contact :\n"); input_person(&myRep[0]); printf("Rep saisit avec succe!\n"); return; } void print_rep(void) { printf("Lancement de l'affichage du rep\n"); int i; for(i=0;i<rep_size;i++) { printf("-------------------------------------\n"); printf("Name : %s\n", myRep[i].name); printf("Tel : %s\n", myRep[i].tel); printf("-------------------------------------\n"); } printf("Fin de l'affichage du repertoire\n"); return; } int find_in_rep(void) { int i; char name_to_find[MAX_NAME_CHAR]; printf("Outil de recherche dans le rep :\n"); printf("Entrer un nom :"); scanf("%s", name_to_find); printf("\n"); for(i=0;i<rep_size;i++) { if(strcmp(name_to_find, myRep[i].name)==0) { printf("Trouvé!\n"); printf("Num : %s", myRep[i].tel); return 1; } } return 0; } void save_rep(void) { FILE *save = fopen("save.data", "w"); int i; for(i=0;i<rep_size;i++) { fputs(myRep[i].name, save); fputc(' ', save); fputs(myRep[i].tel, save); fputc(' ', save); fputc('\n', save); printf("Profil %d enregistrer dans le fichier data.\n", i+1); } fclose(save); return; } int load_rep(void) { int i; signed char n_name[MAX_NAME_CHAR], n_tel[MAX_TEL_CHAR]; FILE *save = fopen("save.data", "r"); if(save==NULL) return 1; int size = get_file_size(save); myRep = realloc(myRep, size*sizeof(pers)); printf("size : %d\n", size); for(i=1;i<size;i++) rep_size++; printf("Fichier data trouvée!\n"); printf("Lancement de la récupération des données\n"); for(i=0;i<rep_size;i++) { fscanf(save, "%s %d ", myRep[i].name, myRep[i].tel); printf("NAME : %s | TEL : %s\n", myRep[i].name, myRep[i].tel); } printf("Données récupérer avec succée\n"); fclose(save); return 0; } int get_file_size(FILE *file) { int size=0; signed char str[MAX_NAME_CHAR+MAX_TEL_CHAR]; while(fgets(str, MAX_NAME_CHAR+MAX_TEL_CHAR-1, file)!=NULL) size++; return size; } void add_profil(void) { signed char new_name[MAX_NAME_CHAR]; signed char new_tel[MAX_TEL_CHAR]; printf("Veuillez entrer le nom du nouveau profil : "); scanf("%s", new_name); printf("Veuillez entrer le tel du nouveau profil : "); scanf("%s", new_tel); myRep = realloc(myRep, (rep_size+1)*sizeof(pers)); ++rep_size; strcpy(myRep[rep_size-1].name, new_name); strcpy(myRep[rep_size-1].tel, new_tel); print_rep(); return; }
Merci pour la réponse rapide c'est assez impressionnant le travail que vous effectuer sur se forum
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
j'ai beau regarder partout, j'ai l'impression qu'il manque une partie de ton programme.
j'ai beau regarder partout, j'ai l'impression qu'il manque une partie de ton programme.