Problème de code source en C++

Fermé
Trabant - 14 avril 2010 à 10:42
 Trabant - 14 avril 2010 à 18:34
Bonjour à tous, je suis actuellement en train d'essailler de programmer un petit plannificateur de tâche qui permetterait à l'utilisateur de rentrer l'heure actuelle, les minutes actuelles, puis de demander l'heure et les minutes de sa tâche, et demandant si cette dernière s'éxécutera le jour suivant ( renvoyé a un bool , si oui 1 , si non 0).
Cependant je me heurte à un problème dans la demande de mes variables, en fait, il "saute" la demande des minutes a chaque fois, et finalement le programme ne fonctionne pas bien.
Je vous passe le code soure pour savoir si vous vovez ce qui ne va pas. (je ne pense pas que mon erreur vient de la formule, elle m'a l'air compliquée, certe mais correct , je n'ai pas non plus oublié que la valeur retournée a un sleep est en ms , AU SECOUR)


#include <cstdlib>
#include <iostream>
#include <windows.h>


char ha, ma, hp, mp ;
int tem;
int tems;
char jour;
using namespace std;

int main(int argc, char *argv[])
{
cout <<"Entrez l'heure actuelle"<< endl;
cin >> ha;
cout <<"Entrez les minutes actuelles"<< endl;
cin >> ma;
cout <<"La tache sera executee le jour suivant ?"<< endl ;
cin >> jour;
cout <<"Entrez l'heure planifiee"<< endl;
cin >> hp ;
cout <<"Entrez les minutes planifiees"<< endl;
cin >> mp ;

if (jour == 0)
{ tem = (( hp - ha ) *60) + (mp -ma);
tems = ( tem *60000) ;}

if (jour == 1)
{ tem = (( hp - ha + 24 ) *60) + (mp -ma);
tems = ( tem *60000) ;}


Sleep (tems ) ;

system ("test.exe") ;
system ("pause ");
return EXIT_SUCCESS;
}

Merci d'avance de vos réponses


A voir également:

2 réponses

Bonjour,
Les heures et minutes sont déclarées de type char (= 1 caractère).
Hors les heures/minutes sont généralement composées de 2 caractères.

Donc quand on est sur le "cin >> ha" ; et que l'utilisateur saisi "17" pour l'heure ;
Le premier caractère "1" va aller dans ha, et le second "7" ira dans ma.
Donc l'utilisateur n'aura pas la possibilité de saisir ma...

Il faut donc changer le type des variables utilisées pour résoudre ton problème.
Un short int me paraît plus adéquat pour gérer les heures et minutes.

Note: Quand tu fais "hp - ha" avec des char, le résultat est le code ASCII du caractère hp - le code ASCII du caractère ha.

Cordialement, M.
0
Merci beaucoup, effetivement j'avais pas pensé à ca, encore merci
0