Bonjour !
 
Alors voilà, le but est simple : copier un fichier texte (et remplacer les virgules qu'il contient par des points).
A priori c'est très simple, j'arrive à le faire quand tout est dans le même fichier mais j'ai voulu séparer les étapes et donc j'ai créé plusieurs fichiers.
 
J'ai donc mon fichier main.c qui contient (entre autres) :
Code :
 - /* main.c */
 - #include "main.h"
 - int main(void)
 - {
 - 	FILE *file_excel;
 - 	FILE *file_temp;
 - 	printf("COPIE :\n" );
 - 	/* ouverture des fichiers pour la copie avec transformation des virgules en points */
 - 	if( ( ( file_excel = fopen("c:\\morphing.txt", "r" ) ) != NULL ) && ( ( file_temp = fopen("c:\\morphing_temp.txt", "w" ) ) != NULL ) )
 - 	{
 -   printf("-> L'ouverture des fichiers s'est realisee correctement.\n" );
 -   if( transformation(file_excel,file_temp) == -1 )
 -   {
 -   	printf(" !! Erreur dans les pointeurs de fichiers !!\n" );
 -   }
 -   else
 -   {
 -   	printf("-> Copie du fichier reussie.\n" );
 -   }
 - 	}
 - 	else
 - 	{
 -   printf(" !! Erreur lors d'une ouverture de fichier !!\n" );
 - 	}
 - 	/* fermeture des fichiers */
 - 	if( ( fclose(file_excel) != EOF ) && ( fclose(file_temp) != EOF ) )
 - 	{
 -   printf("-> La fermeture des fichiers s'est realisee correctement\n" );
 - 	}
 - 	else
 - 	{
 -   printf(" !! Erreur lors d'une fermeture de fichier !!\n" );
 - 	}
 
  | 
 
Et puis j'ai mon fichier lecture.c qui contient cette fonction transformation() :
Code :
 - /* lecture.c */
 - #include "lecture.h"
 - int transformation(FILE *fpIn, FILE *fpOut)
 - {
 - 	int c;
 - 	int ret = 0;
 - 	if( ( fpIn != 0 ) && ( fpOut != 0 ) )
 - 	{
 -   while ( (c = getc(fpIn)) != EOF)//copie du fichier vers un fichier temporaire
 -   {
 -   	if( c == ',' ) //remplacement des virgules en points
 -   	{
 -     c = '.';
 -   	}
 -   	putc(c, fpOut);
 -   }//fin de copie du fichier
 - 	}
 - 	else
 - 	{
 -   ret = -1;
 - 	}
 - 	return ret;
 - }
 
  | 
 
Le problème c'est que là mon fichier destination (morphing_temp.txt) est vide après l'exécution du programme !
 
Apparemment ça vient du fopen puisque quand je fais l'ouverture des fichiers au sein de la fonction transformation(), tout marche bien.
 
Alors est-ce qu'il y aurait moyen d'adapter pour que ce que j'ai copiécollé fonctionne ? ou alors suis-je obligé de faire les ouvertures et fermetures de fichiers dans la fonction qui traite le fichier ? (dans ce cas il n'y a pas d'argument et ell n'est donc ps utilisable, ce que je voudrais éviter si possible).
 
 
Merci d'avance !!