Langage C: écriture dans un fichier
Sportif_C
-
Pacorabanix Messages postés 3248 Date d'inscription Statut Membre Dernière intervention -
Pacorabanix Messages postés 3248 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis entrain d'écrire un programme qui permet de lister toutes les combinaisons possibles avec 3 numéros. Pour ça j'ai utilisé une méthode récursive.
J'ai un petit souci: c'est a quelle moment je dois fermer mon fichier! En fait, je voudrais écrire les résultants dans un fichier texte "CombinationsFile.txt". Chaque combinaison est sur une ligne.
J'ai un petit souci:je ne sais pas à quelle moment je dois fermer mon fichier!
Quelqu'un pourrait-il m'aider?
Merci.
Je suis entrain d'écrire un programme qui permet de lister toutes les combinaisons possibles avec 3 numéros. Pour ça j'ai utilisé une méthode récursive.
J'ai un petit souci: c'est a quelle moment je dois fermer mon fichier! En fait, je voudrais écrire les résultants dans un fichier texte "CombinationsFile.txt". Chaque combinaison est sur une ligne.
J'ai un petit souci:je ne sais pas à quelle moment je dois fermer mon fichier!
Quelqu'un pourrait-il m'aider?
Merci.
void combinaisons(int n, int p, int k, int *L, int *t, int r) { int i, j, j1, t2[n]; CombinationsFile=fopen("Combinations.txt","w"); if(CombinationsFile==NULL) { printf("Failed to open Combinations file, quitting!\n"); exit(1); } if(r<p-k) return; if(k==p) { for(i=0;i<p;i++) fprintf(CombinationsFile,"%d ", L[i] ); printf("\n"); return; } for(i=0;i<r;i++) { L[k] = t[i]; for(j=i+1, j1=0;j<r;j++, j1++) { t2[j1] = t[j]; } combinaisons(n, p, k+1, L, t2, j1); } }
A voir également:
- Langage C: écriture dans un fichier
- Langage ascii - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage visual basic - Télécharger - Langages
- Langage basic gratuit - Télécharger - Édition & Programmation
A cause des appels récursifs, je n'arrive pas à y voir clair, tout comme toi je pense.
une meilleure stratégie, plus *réutilisable* (si tu veux changer le nom du fichier, etc...) et plus pratique dans ce cas, serait de mettre CombinationsFile=fopen("Combinations.txt","w");
dans le main, ou autre fonction qui appelle celle que tu nous montres, et passer cette variable en *paramètre* en plus pour ta fonction récursive.
Ainsi tu ouvres le fichier avant d'appeler la première fois ta fonction, tu transmets le descripteur par argument, et tu fermes le fichier après l'appel initial.
J'ai fais comme tu m'as demandé(enfin je pense). mais ça marche pas.Pourrais-tu STP essayer d'exécuter le programme et me dire ce que tu en penses?Merci encore.
func(combinaison,p);
FILE * CombinationsFile;
je la déclarerais plutot dans le main, juste pour éviter la confusion avec les arguments.