Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1818 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Arguments en ligne de commande

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Arguments en ligne de commande

n°1425983
Gattuso
Posté le 16-08-2006 à 13:40:07  profilanswer
 

Bonjour,
 
j'ai écrit une fonction copy :int copy(FILE *src, FILE *dst)
qui permet de copier le contenu d'un fichier dans un autre
Par exemple, si je tape :

Code :
  1. $ ./a.out source destination


Le programme me copie le contenu de source dans destination
mon main est donc le suivant (sans la gestion des erreurs) dans le cas ou il y a 2 arguments.  

Code :
  1. int main(int argc, char *argv[])
  2. {
  3.   FILE *fileIn, *fileOut;
  4.   if(argc != 3)
  5.    /*gestion erreur*/
  6.   fileIn = fopen(argv[1], "r" );
  7.   fileOut = fopen(argv[2], "w" );
  8.   copy(fileIn, fileOut);
  9.   return EXIT_SUCCESS;
  10. }


 
Je voudrais savoir comment modifier le main pour que le le contenu du fichier source soit afficher à l'écran lorsqu'il n'y a qu'un parametre :

Code :
  1. $ ./a.out source


et qu'il y ait copie lorsqu'il y a 2 parametres :

Code :
  1. $ ./a.out source destination


 
Merci

mood
Publicité
Posté le 16-08-2006 à 13:40:07  profilanswer
 

n°1426002
jbourdello​n
Posté le 16-08-2006 à 14:04:53  profilanswer
 

Pour moi si tu ne précise qu'un seul paramètre alors le second devient :
stdout (pointeur sur la sortie standard) ...

n°1426014
_darkalt3_
Proctopathe
Posté le 16-08-2006 à 14:11:58  profilanswer
 

Par exemple, tu comptes les paramètres ?

n°1426019
Gattuso
Posté le 16-08-2006 à 14:14:40  profilanswer
 

jbourdellon a écrit :

Pour moi si tu ne précise qu'un seul paramètre alors le second devient :
stdout (pointeur sur la sortie standard) ...


C'est comme ça que ça se passe ?
 

Code :
  1. int main(int argc, char *argv[])
  2. {
  3.   FILE *fileIn, *fileOut;
  4.   switch(argc){ 
  5.    case 2 :
  6.     fileIn = fopen(argv[1], "r" );
  7.     fileOut = stdout;
  8.     copy(fileIn, fileOut);
  9.     break;
  10.    case 3 :
  11.     fileIn = fopen(argv[1], "r" );
  12.     fileOut = fopen(argv[2], "w" );
  13.     copy(fileIn, fileOut);
  14.     break;
  15.    default :
  16.    fprintf(stderr,"erreur nombre parametres incorrects\n" );
  17.    return EXIT_FAILURE;
  18. }
  19.   return EXIT_SUCCESS;
  20. }

n°1426025
_darkalt3_
Proctopathe
Posté le 16-08-2006 à 14:19:06  profilanswer
 

t'as essayé ?

n°1426026
jbourdello​n
Posté le 16-08-2006 à 14:19:08  profilanswer
 

Oui ca me semble correct mais bon j'ai pas moyen de tester la, donc ...

n°1426027
_darkalt3_
Proctopathe
Posté le 16-08-2006 à 14:19:17  profilanswer
 

(mais oui, c'est dans l'idée)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Arguments en ligne de commande

 

Sujets relatifs
Impression en ligne de commande avec la commande printRécupérer l'Index d'une ligne de DataGrid
[MFC] effectuer un retour à la ligne ds un EDITTEXT[Python] Passer des arguments en ligne de commande
[C++] Bibliothèque Argstream : arguments de la ligne de commandeRecuperer les arguments (ligne de commande)
[ANT] Passer des arguments de ligne de commande[DELPHI] recuperer les arguments de la ligne de commande
[MFC] Récupérer les arguments de la ligne de commande (argc, argv,...)[C] Specifier arguments en ligne de commande
Plus de sujets relatifs à : Arguments en ligne de commande


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR