Votre question

[Résolu][C] Creation fichiers (avec 1 pointeur) HELP

Tags :
  • Programme
  • Programmation
Dernière réponse : dans Programmation
5 Juin 2008 18:04:29

Bonjour, a tous j'ai un probleme
Je crée un programme qui doit (normalement) répartir un texte en plusieurs fichier numérotés.
Et je ne comprend pas pourquoi la valeur retourné (sortie) est 0

En gros mon code
  1. int nombre = 0, nbreFichier = 0, continuer;
  2. char fichier[256] = "C:";
  3.  
  4. do{
  5. FILE *sortie = NULL;
  6. nbreFichier++; // le numéro du fichier
  7. char localString1[20] = "";
  8. sprintf(localString1, "\\Numero_%d.txt", nbreFichier); // nom du fichier sans chemin
  9. nombre = 0;
  10. continuer = 1;
  11. printf("\n%d\n", nbreFichier);// affiche le numero du fichier
  12. strcat(fichier, localString1); // on cré l'adresse complete du fichier
  13. sortie = fopen(fichier,"w+"); // on cré le fichier
  14. printf("\n%d\n", sortie); // verife si OK alors la valeur != 0
  15.  
  16. while(continuer == 1)
  17. {
  18. fprintf( sortie, "%d ", nombre);
  19. nombre++; // bon normalement il y a plein de code mais ça ne sert a rien que je le mette
  20. system("PAUSE"); // pour qu'on prennent bien le temps de regarder
  21.  
  22. if(nombre == 3) // j'ai mis 3 pour que ce soit rapide
  23. {
  24. continuer = 0;
  25. }
  26. }
  27. fclose(sortie); // on ferme le fichier
  28. }while( continuer == 0 || continuer == 1); // comme ça on est sur que ça marche longtemps :p


Donc on obtient au début 1 (pour: nbreFichier) et un grand nombre pour "sortie".
Mais si on presse 3 fois une touche on obtient 2 (pour: nbreFichier) et 0 pour "sortie".
=> Donc 1 seul fichier a été crée, pourtant, le fichier est fermé à la fin
Aidez moi SVP
Merci

Autres pages sur : resolu creation fichiers pointeur help

a b L Programmation
5 Juin 2008 20:53:18

Tu ne réinitialises pas la variable "fichier"

bref à ta seconde boucle, le nom de ton fichier devrait être C:\Numero_0.txt\Numero_1.txt
Or, le répertoire Numero_0.txt n'existant pas, le fichier ne peut pas être créé, d'où un pointeur NULL en sortie. Je me trompe ?

PS: pour la réinitialisation, avant le strcat, fait un strcpy(fichier, "C:")

5 Juin 2008 21:22:53

OK, merci, j'avais pas pensée a ça !
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS