Shutdown avec une variable en C

seth -  
 seth -
Bonjour,
je debut en langage C et j'ai essayer de cree un petit programme avec la console ou l'on indique le temp que l'on veut et l'ordinateur s'arette:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
long shut = 0;

printf("eteindre dans=");
scanf("%ld", &shut);
system(" shutdown -s -t %ld", shut);
return 0;
}

mais ca ne fonctione pas la commande system n'est pas compatible avec les variables?
si quelqu'un pourait m'aider ...
Configuration: Windows XP
Firefox 2.0.0.2

5 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    montre le résultat du printf !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    et si tu supprimes l'appel à system, il ne va rien se passer !!!
    1
    1. seth
       
      pour la ligne 10 ----) sscanf(cmd, "shutdown -s -t %ld", shut); j'ai format argument is not a pointerpour le prints il n'affiche rien des signes bizzars des caracters speciaux d ugenre pettit 1 carrres }
      0
    2. seth
       
      pour la ligne 10 ----) sscanf(cmd, "shutdown -s -t %ld", shut); j'ai format argument is not a pointerpour le prints il n'affiche rien des signes bizzars des caracters speciaux d ugenre pettit 1 carrres }
      0
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    system ne comprend pas les % d'un format, il lui faut une chaine de caractères

    char cmd[128];

    sscanf(cmd, " shutdown -s -t %ld", shut);
    system(cmd);
    0
    1. seth
       
      j'ai essayer ce que tu ma dit mais sa ne semble pas fonctionner dit moi si j'ai mal inseré
      (sscanf(cmd, " shutdown -s -t %ld", shut); j'ai enlever un s)

      ca donne sa

      #include <stdio.h>
      #include <stdlib.h>

      int main(int argc, char *argv[])
      {
      long shut = 0;

      printf("eteindre dans=");
      scanf("%ld", &shut);
      char cmd[128];
      scanf(cmd, "shutdown -s -t %ld", shut);
      system(cmd);
      return 0;
      }

      merci
      0
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    il faut 2s
    sscanf(cmd, "shutdown -s -t %ld", shut);
    0
    1. seth
       
      ok je vait essayer je te redit demain si sa a marché
      0
      1. seth > seth
         
        je comprend pas sa marche toujour pas..


        #include <stdio.h>
        #include <stdlib.h>

        int main(int argc, char *argv[])
        {
        long shut = 0;

        printf("eteindre dans=");
        scanf("%ld", &shut);
        char cmd[128];
        sscanf(cmd, "shutdown -s -t %ld", shut);
        system(cmd);
        return 0;
        }
        0
  4. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    déplacer char cmd[128]; après long shut=0
    mettre un printf("%s\n", cmd); après le sscanf
    0
    1. seth
       
      desoler je comprend pas je remplace system(cmd); par printf("%ld\n", cmd);?



      #include <stdio.h>
      #include <stdlib.h>

      int main(int argc, char *argv[])
      {
      long shut = 0;
      char cmd[128];
      printf("eteindre dans=");
      scanf("%ld", &shut);
      sscanf(cmd, "shutdown -s -t %ld", shut);
      printf("%ld\n", cmd);
      return 0;
      }
      0
      1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660 > seth
         
        non, %s pour voir le contenu de cmd
        0
      2. seth > dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention  
         
        ca me met (j'utilise code blocks) syntax error befor return ca na aucuns sens ...
        printf("%s\n", cmd) -) pourquoi voirs cmd?

        #include <stdio.h>
        #include <stdlib.h>

        int main(int argc, char *argv[])
        {
        long shut = 0;
        char cmd[128];
        printf("eteindre dans=");
        scanf("%ld", &shut);
        sscanf(cmd, "shutdown -s -t %ld", shut);
        printf("%s\n", cmd)
        return 0;
        }
        merci deme repondre depuis le debut je debute et un debutant ca doit etre chiant
        0
      3. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526 > seth
         
        T'as oublié un point-virgule au dernier printf.
        0
      4. seth > kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention  
         
        houps merci
        essais!
        tpujours rien...
        0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Salut,
    Normal, ce n'est pas sscanf qu'il faut utiliser mais sprintf !
    #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char *argv[])
    {
    long shut = 0;
    
    printf("eteindre dans=");
    scanf("%ld", &shut);
    char cmd[128];
    sprintf(cmd, "shutdown -s -t %ld", shut);
    system(cmd);
    return 0;
    }
    
    0
    1. seth
       
      sa semble mieu fonctionner mais il y a un probleme avec le shutdown la consol affiche le shudown help
      le scan n'est pas pris en compte?
      0