Bonjour à tous,
voilà je suis en train de terminer un petit programme pour recopier des fichiers tout en donnant des noms précis (déterminé dans une chaîne).
Voici le bout de code suivant :
Il fonctionne, dans le sens où tous mes fichiers sont créés.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 FILE *fOld = fopen(argv[1], "rb"); if (fOld != NULL) { while (MaPile) { FILE *fNew = fopen(MaPile->nomFichier, "wb"); copieFichier (fOld, fNew); fclose(fNew); MaPile = MaPile->prec; } }
Par contre, seul, le dernier fichier entré dans ma chaîne est bien copié.
Les autres fichiers sont créés mais vide.
Pour que celà fonctionne correctement, je dois faire ceci :
Ma question est toute simple, est-ce normal ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 FILE *fOld = fopen(argv[1], "rb") if (fOld != NULL) { while (MaPile) { FILE *fOld = fopen(argv[1], "rb"); FILE *fNew = fopen(MaPile->nomFichier, "wb"); copieFichier (fOld, fNew); fclose(fNew); MaPile = MaPile->prec; } }
Je veux dire, je pensais qu'en ouvrant mon fichier avant la boucle la variable était toujours disponible est donc avec le contenu du fichier.
N'est-pas trop lourd de fonctionner comme ca ?
Merci de vos réponses et de votre aide.
Partager