Toucouch | Alors, j'ai essayé de compiler ton truc:
1. J'avais jamais utilisé puts et gets mais le compilo me met texto "The use of gets is dangerous...". Donc, je pense qu'il vaudrait mieux lui préférer un scanf ou mieux, l'utilisation des paramètres de main...
2. Quand tu ouvres des fichiers, teste si l'ouverture s'est effectuée sans problème, ça ne coûte pas grand chose, et ça peut t'aider à comprendre quand ça ne marche pas...
3. Code :
- while(fread(&a,sizeof(char),1,lecture),!feof(lecture))
|
Là, je dois dire que c'est particulièrement illisible... Je ne savais même pas qu'un compilo autorisait ça... Pourtant, je suis loin d'être un maniaque...
Donc, après nettoyage, j'ai ça:
Code :
- #include "stdio.h"
- int main(int argc,char *argv[])
- {
- char fichier[25],fichier2[25];
- FILE *lecture,*ecriture;
- char a;
- // addresse des fichiers .exe ou autre
- printf("Addresse du fichier a lire : " );
- scanf("%s",fichier);
- printf("\nAddresse du fichier a ecrire : " );
- scanf("%s",fichier2);
- // ouverture en mode binaire
- if(!(lecture = fopen(fichier,"rb" )))
- {
- printf("Ouverture de %s impossible.\n",fichier);
- return 1;
- }
- if(!(ecriture = fopen(fichier2,"wb" )))
- {
- printf("Ouverture de %s impossible.\n",fichier2);
- return 1;
- }
- // copie du fichier de l'adresse1 à l'addresse2
- fread(&a,sizeof(char),1,lecture);
- while(!feof(lecture))
- {
- fwrite(&a,sizeof(char),1,ecriture);
- fread(&a,sizeof(char),1,lecture);
- }
- // fermeture des fichiers
- fclose(lecture);
- close(ecriture);
- }
|
Et ça marche... |