Complément pour mon programe !
lucario200298
Messages postés
56
Date d'inscription
Statut
Membre
Dernière intervention
-
lucario200298 Messages postés 56 Date d'inscription Statut Membre Dernière intervention -
lucario200298 Messages postés 56 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai écris un programme qui fonctionne, super, mais je voudrai un action supplémentaire et je ne sais pas comment m'y prendre voici le code :
Ce que je voudrais faire : c'est pouvoir au dernier printf qui se situe dans la boucle afficher heure minute seconde.
Merci de répondre rapidement
J'ai écris un programme qui fonctionne, super, mais je voudrai un action supplémentaire et je ne sais pas comment m'y prendre voici le code :
#include <stdio.h> #include <stdlib.h> #include <Windows.h> int main() { int heure = 0, minute = 0, seconde = 0; printf ("Cette application sert a eteindre l'ordinateur au bout d'un certain temps\n\nEntrez le nombre d'heures\n"); scanf ("%d", &heure); printf ("Le nombre minutes\n"); scanf ("%d", &minute); printf ("Et enfin, le nombre de secondes\n"); scanf ("%d", &seconde); minute = minute + (heure * 60); seconde = seconde + (minute * 60); while (seconde > 0) { printf ("Extinction de l'ordinateur dans %d seconde", seconde); seconde--; Sleep(1000); system ("cls"); } system ("shutdown -p"); return 0; }
Ce que je voudrais faire : c'est pouvoir au dernier printf qui se situe dans la boucle afficher heure minute seconde.
Merci de répondre rapidement
A voir également:
- En complément de mon précédent mail
- Publipostage mail - Accueil - Word
- Windows live mail - Télécharger - Mail
- Serveur de reception mail - Guide
- [At] mail - Forum Mail
- Live.fr mail - Forum Mail
3 réponses
Il te suffit d'abord de compter combien de fois (x) tu peux mettre 60*60 dans seconde. Retire 3600x de seconde puis calcule combien de fois (y) tu peux mettre 60 dans seconde. Retire 60y de seconde puis affiche x=heures, y=minutes, seconde.
lucario200298
Messages postés
56
Date d'inscription
Statut
Membre
Dernière intervention
1
Excuser moi mais je n'ai rien compris
Ce que tu veux c'est afficher l'heure du système ?
#include <time.h> time_t tt = time(NULL); struct tm *t = localtime(&tt); int h = t->tm_hour; int m = t->tm_min; int s = t->tm_sec; printf("%d:%d:%d\n", h,m,s)
est-ce que c'est ca ?
#include <stdio.h> #include <stdlib.h> #include <Windows.h> #include <time.h> int main() { int heure = 0, minute = 0, seconde = 0; printf ("Cette application sert a eteindre l'ordinateur au bout d'un certain temps\n\nEntrez le nombre d'heures\n"); scanf ("%d", &heure); printf ("Le nombre minutes\n"); scanf ("%d", &minute); printf ("Et enfin, le nombre de secondes\n"); scanf ("%d", &seconde); minute = minute + (heure * 60); seconde = seconde + (minute * 60); while (seconde > 0) { time_t tt = time(NULL); struct tm *t = localtime(&tt); int h = t->tm_hour; int m = t->tm_min; int s = t->tm_sec; printf("%d:%d:%d\n", h,m,s) seconde--; Sleep(1000); system ("cls"); } system ("shutdown -p"); return 0; }
Tout dépend ce que tu veux faire...
Comme ça il affichera l'heure toutes les secondes, je suis pas sûr que c'est ce que tu veuilles !
Moi j'aurais mis ça juste après l'accolade fermante du while, la ligne avant l'appel system
Mais c'est difficile de t'aider exactement, on ne sais pas ce que tu veux faire exactement...
À vrai dire il me parait personnellement inutile de faire un tel affichage, mais c'est ton programme ;-)
Met en commentaire la ligne du shutdown et fais des tests !
Comme ça il affichera l'heure toutes les secondes, je suis pas sûr que c'est ce que tu veuilles !
Moi j'aurais mis ça juste après l'accolade fermante du while, la ligne avant l'appel system
Mais c'est difficile de t'aider exactement, on ne sais pas ce que tu veux faire exactement...
À vrai dire il me parait personnellement inutile de faire un tel affichage, mais c'est ton programme ;-)
Met en commentaire la ligne du shutdown et fais des tests !
Tu peux faire comme cela :
#include "stdlib.h" #include "stdio.h" #include "windows.h" int main() { char heure, minute, seconde; printf ("Cette application sert a eteindre l'ordinateur au bout d'un certain temps.\n\n"); printf("Nombre d'heures : "); scanf("%d",&heure); printf ("Nombre de minutes : "); scanf("%d",&minute); printf ("Nombre de secondes : "); scanf("%d",&seconde); while (true) { system ("cls"); printf("Extinction dans %d:%d:%d\n",heure,minute,seconde); if (seconde==0) { if (minute==0) { if (heure==0) { //system ("shutdown -p"); return 0; } else { heure--; minute+=59; } } else { minute--; } seconde+=59; } else { seconde--; } //Sleep(1000); } }Remarque : utiliser Sleep(1000) n'assure en aucun cas qu'il y aura très exactement 1 seconde entre chaque itération, je pense qu'il faut repenser ton code en définissant une heure à atteindre, et égrainer le temps qui nous sépare de cette heure.
1>------ Début de la génération : Projet : shutdown, Configuration : Debug Win32 ------
1> main.c
1>c:\users\baptiste parsy\documents\visual studio 2010\projects\shutdown\shutdown\main.c(12): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(304) : voir la déclaration de 'scanf'
1>c:\users\baptiste parsy\documents\visual studio 2010\projects\shutdown\shutdown\main.c(15): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(304) : voir la déclaration de 'scanf'
1>c:\users\baptiste parsy\documents\visual studio 2010\projects\shutdown\shutdown\main.c(18): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(304) : voir la déclaration de 'scanf'
1>c:\users\baptiste parsy\documents\visual studio 2010\projects\shutdown\shutdown\main.c(20): error C2065: 'true' : identificateur non déclaré
========== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========
1> main.c
1>c:\users\baptiste parsy\documents\visual studio 2010\projects\shutdown\shutdown\main.c(12): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(304) : voir la déclaration de 'scanf'
1>c:\users\baptiste parsy\documents\visual studio 2010\projects\shutdown\shutdown\main.c(15): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(304) : voir la déclaration de 'scanf'
1>c:\users\baptiste parsy\documents\visual studio 2010\projects\shutdown\shutdown\main.c(18): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(304) : voir la déclaration de 'scanf'
1>c:\users\baptiste parsy\documents\visual studio 2010\projects\shutdown\shutdown\main.c(20): error C2065: 'true' : identificateur non déclaré
========== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========
Ce genre d'erreur tu devrais apprendre à les corriger toi même Visual Studio te le dit assez clairement pourtant : C2065: 'true' : identificateur non déclaré
Moi j'ai compilé mon code en C++ donc il connait true, mais si tu compiles en C ça plante...
Remplace while(true) par while(1) et ça devrait marcher...
Moi j'ai compilé mon code en C++ donc il connait true, mais si tu compiles en C ça plante...
Remplace while(true) par while(1) et ça devrait marcher...