Se connecter avec
S'enregistrer | Connectez-vous

commande system

Dernière réponse : dans Programmation

Voici mon programme

#include <stdio.h>
#include <cstdlib>

int main(void)
{
char nom[20];
printf("entrez un nom utilisateur a rajouter :");
scanf("%s",nom);
printf("%s\n",nom);
system("xcopy /E /Y /H /I d:\users\USER1A d:\users\nom");
}

Probleme ma syntaxe pour la fonction system est mauvaise. Pouvez vous me la corriger svp?
Deuxieme point, je souhaite integrer la variable "nom" saisi en debut de programme en variable dans la commande system(d:\usres\nom). Comment faire?
Merci

Autres pages sur : commande system

Lassé par la pub ? Créez un compte

Il faut que tu double les backslash car ce sont des caractères d'échapement.

  1. int main(void)
  2. {
  3. char nom[20];
  4. printf("entrez un nom utilisateur a rajouter :");
  5. scanf("%s",nom);
  6. printf("%s\n",nom);
  7. system("xcopy /E /Y /H /I d:\\users\\USER1A d:\\users\\nom");
  8. }


Je ne ferais pas de commentaire sur l'utilisation de system ... (sache juste que c'est mal ...)

Pour ta deuxième question, il suffit de construire la commande passé à system

  1. #define CMD_SKEL "xcopy /E /Y /H /I d:\\users\\USER1A d:\\users\\%s"
  2.  
  3. int main(void)
  4. {
  5. char nom[20];
  6. char *cmd;
  7. printf("entrez un nom utilisateur a rajouter :");
  8. scanf("%s",nom);
  9. printf("%s\n",nom);
  10. cmd = (char *)malloc(strlen(CMD_SKEL) + strlen(nom) + 2);
  11. sprintf(cmd, CMD_SKEL, nom);
  12. system(cmd);
  13. }


Evidemment il faut que tu rajoutes des controles sur la saisie car si on tape un nom ayant plus de 20 caractères tu va te taper un débordement de buffer.

Je pense que le msieur il se fait bien brère
Code :

#define CMD_SKEL "xcopy /E /Y /H /I d:\\users\\USER1A d:\\users\\%s"

int main(void)
{
char nom[20];
char *cmd;
printf("entrez un nom utilisateur a rajouter :" );
scanf("%s",nom);
printf("%s\n",nom);
cmd = (char *)malloc(strlen(CMD_SKEL) + strlen(nom) + 2);
sprintf(cmd, CMD_SKEL, nom);
system(cmd);
}




int main(void)
{
char nom[20];
char lacmd[250];

strcpy (lacmd, "xcopy /E /Y /H /I d:\\users\\USER1A d:\\users\\");

printf("entrez un nom utilisateur a rajouter :" );
scanf("%s",nom);
printf("%s\n",nom);
strcat (lacmd, nom);

system(cmd);
}
Lassé par la pub ? Créez un compte