Shutdown avec une variable en C

Fermé
seth - 15 déc. 2008 à 14:26
 seth - 19 déc. 2008 à 20:30
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 ...

5 réponses

dubcek Messages postés 18753 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 7 novembre 2024 5 619
18 déc. 2008 à 17:22
montre le résultat du printf !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
et si tu supprimes l'appel à system, il ne va rien se passer !!!
1
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
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
dubcek Messages postés 18753 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 7 novembre 2024 5 619
15 déc. 2008 à 15:04
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
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
dubcek Messages postés 18753 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 7 novembre 2024 5 619
15 déc. 2008 à 17:03
il faut 2s
sscanf(cmd, "shutdown -s -t %ld", shut);
0
ok je vait essayer je te redit demain si sa a marché
0
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
dubcek Messages postés 18753 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 7 novembre 2024 5 619
17 déc. 2008 à 12:38
déplacer char cmd[128]; après long shut=0
mettre un printf("%s\n", cmd); après le sscanf
0
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
dubcek Messages postés 18753 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 7 novembre 2024 5 619 > seth
18 déc. 2008 à 13:22
non, %s pour voir le contenu de cmd
0
seth > dubcek Messages postés 18753 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 7 novembre 2024
18 déc. 2008 à 16:50
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
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527 > seth
18 déc. 2008 à 16:58
T'as oublié un point-virgule au dernier printf.
0
seth > kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016
18 déc. 2008 à 17:11
houps merci
essais!
tpujours rien...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841
19 déc. 2008 à 20:22
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
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