|
begin process at 2008 05 17 06:24:45
Derniers logiciels
|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : programmation en C [ Divers / Débutant(e) ] (waloo92i)
|
programmation en C
le 09/05/2008 15:10:26

waloo92i
|
je ne sais pas comment procéder pour faire sa : Il s'agit dans un premier temps de créer un fichier à partir du clavier ou chaque enregistrement est formé d'un nom et d'un solde, puis charger ce fichier en mémoire centrale pour le trier par ordre alphabétique avant d'écraser ce fichier avec le fichier trié. Puis dans un deuxiéme temps il faut prévoir la modification du solde directement sur le fichier trié. 
|
|
|
|
Re : programmation en C
le 09/05/2008 18:06:13

BastienL21
|
Bonjour, Si je comprends bien, tu voudrais créer un fichier texte dans lequel tu voudrais écrire un nom et un solde ? si oui, voila qui pourrais peut-être t'aider : //METTRE 2 \ pour la direction : fichier = fopen("C: \\RESTEDUCHEMIN \\MonFichier.txt", "a"); //si il est bien ouvert if (fichier != NULL) { fscanf(fichier,"%s", &VariableAInsérer); fclose(fichier); } //si non if(fichier == NULL) { printf("Erreur lors de l'ouverture"); } Cordialement, Bastien
|
|
|
|
Re : programmation en C
le 09/05/2008 18:08:48

BastienL21
|
ERREUR LORS DU PRECEDANT MESSAGE -->voir ligne du code en rouge //METTRE 2 \ pour la direction : fichier = fopen("C: \\RESTEDUCHEMIN \\MonFichier.txt", "a"); //si il est bien ouvert if (fichier != NULL) { fprintf(fichier,"%s", &VariableAInsérer); fclose(fichier); } //si non if(fichier == NULL) { printf("Erreur lors de l'ouverture"); } //Désolé Cordialement, Bastien
|
|
|
|
Re : programmation en C
le 09/05/2008 20:52:30

waloo92i
|
je pense que c'est un plus compliqué que sa voila ce que j'ai fait dite moi ce que vous en pensé mais il reste des warnings que je n'arrive pas a résoudre :
<CODE>#include <stdio.h> #include <stdlib.h> #include <string.h> struct Tree { char nom[32]; char number[32]; struct tree * left; struct tree * right; }* root; void addItem(struct Tree *root, struct Tree *Parain, int bDir, struct Tree *Item) { if (root) { if(strcmp(root->nom, Item->nom)<0) { addItem(root->left, root, 0, Item); } else if (strcmp(root->nom, Item->nom)>0) { addItem(root->right, root, 1, Item); } else if (strcmp(root->number, Item->number)<0) { addItem(root->left, root, 0, Item); } else { addItem(root->right, root, 1, Item); } } else { if (bDir) Parain->right=Item; else Parain->left=Item; } } int fCreerArbre (FILE* file) { char sBuf[128]; struct Tree * Item; while (fgets(sBuf, 128, file)) { Item=(struct Tree*)malloc(sizeof(struct Tree)); sscanf(sBuf, "%s[31] %s[31]", Item->nom, Item->number); Item->left=NULL; Item->right=NULL; if (root) addItem(root, root, 0, Item); else root=Item; } } int fparcoursArbre(FILE *file, struct Tree *root) { if(root) { fparcoursArbre(file, root->left); fprintf(file, "%s %s \r\n", root->nom, root->number); fparcoursArbre(file, root->right); } } int main (int nargs, char ** args) { char * sInputFile; char * sOutputFile; FILE * fInputFile; FILE * fOutputFile; sInputFile=(char *)malloc(strlen(args[1])*sizeof(char)+1); strcpy(sInputFile, args[1]); sInputFile [strlen(args[1])]; sOutputFile=(char *)malloc(strlen(args[1])*sizeof(char)+1); strcpy(sOutputFile, args[1]); sOutputFile [strlen(args[1])]; fInputFile=fopen(sInputFile, "r+"); fOutputFile=fopen(sOutputFile, "w+"); fCreerArbre(fInputFile); fparcoursArbre(fOutputFile, root); fclose(fInputFile); fclose(fOutputFile); return 0; } </CODE>
|
|
|
|
Re : programmation en C
le 09/05/2008 21:02:20

BastienL21
|
Bonsoir, Désolé mais j'ai bien peur de ne pas être à la hauteur (je débute) Mais je peu tout de même essayer Pourrais-tu Expliquer précisément ce que ce programme est sensé faire STP ? Cordialement, Bastien
|
|
|
|
Re : programmation en C
le 09/05/2008 21:17:26

waloo92i
|
Il s'agit dans un premier temps de créer un fichier à partir du clavier ou chaque enregistrement est formé d'un nom et d'un solde, puis charger ce fichier en mémoire centrale pour le trier par ordre alphabétique avant d'écraser ce fichier avec le fichier trié. Puis dans un deuxiéme temps il faut prévoir la modification du solde directement sur le fichier trié
c'est sa qu'il est sensé faire lol je sais pas comment te l'expliquer autrement méme moi g du mal a le comprendre
|
|
|
|
Re : programmation en C
le 12/05/2008 01:49:53

waloo92i
|
bon j'ai faciliter un peu le programme est ce que quelqu'un pourait me le corriger parce qu'il me semble qu'il y'a un probléme de segmentaion voila le code: #include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct{ char NOM_PERS[30] ; float solde ; }personne ; int main() { FILE *P_FICHIER; /* pointeur sur FILE */ typedef struct{ char NOM_PERS[30] ; float solde ; }personne ; int C,NB_ENREG , i; char NOM_FICHIER[30], tab[C]; personne p; /* Première partie : Créer et remplir le fichier */ printf("Entrez le nom du fichier à créer : "); scanf("%s",&NOM_FICHIER); P_FICHIER = fopen(NOM_FICHIER, "a+"); /* write */ printf("Nombre d'enregistrements à créer : "); scanf("%d",&NB_ENREG); C = 0; while (C<NB_ENREG) { printf("Entrez le nom de la personne : "); scanf("%s",p.NOM_PERS); fprintf(P_FICHIER, "%s ", p.NOM_PERS); printf("entrez un solde : "); scanf("%f",&p.solde); fprintf(P_FICHIER,"%f\n",p.solde); C++; } for(i=0 ; i< C ; i++){ tab[i]==p.NOM_PERS[30] ; fprintf(P_FICHIER,"%s",tab[i]); } fclose(P_FICHIER); /* Deuxième partie : Lire et afficher le contenu du fichier */ P_FICHIER = fopen(NOM_FICHIER, "r"); /* read */ C = 0; while (!feof(P_FICHIER)) { fscanf(P_FICHIER, "%s", p.NOM_PERS); fscanf(P_FICHIER, "%f\n",p.solde); C++; } for(i=0 ; i< C ; i++){ fscanf(P_FICHIER,"%s",tab[i]); } fclose(P_FICHIER); return 0; }
|
|
|
Classé sous : fichier, temps, programmation, trié, solde
|
Téléchargements
Logiciels à télécharger sur le même thème :
|
|