VC++ 6, pb avec time - C++ - Programmation
Marsh Posté le 15-08-2003 à 16:04:02
Oui, j'ai une idée.
J'avais eu le meme probleme que toi, et je l'avais résolu assez bizarrement.
Apres avoir chopé le start, copie la valeur de start dans une autre variable... et compare la valeur copiée avec celle de finish.
je ne sais pas pourquoi, mais il me semble que time renvoyait son résultat tjs a la meme adresse, ce qui faisait que les valeurs étaient écrasées.
Attention, je sors peut etre ( surement ) une connerie, mais je suis quasi sur d'avoir eu un probleme similaire en essayant de timer l'execution de mon prog résal...
Affiche start et finish, tu verras, elles ont la meme valeur a coup sur, si tu les affiche apres time(&finish)
Marsh Posté le 15-08-2003 à 16:06:37
tetedeiench a écrit : Oui, j'ai une idée. |
OK, je test mais dans le debuggeur, la variable finish evolue bien pourtant c "strange"
Marsh Posté le 15-08-2003 à 16:19:20
Nop, en fait ca marche pas , mais qu'est ce que c que ce binz ?
Marsh Posté le 15-08-2003 à 16:29:54
c zarb, dans le test, la fonction me renvoie -1, et ds le fichier difftime.txt c tjs pareil
Marsh Posté le 15-08-2003 à 16:33:28
sujet a écrit : Un probleme, encore un... |
Un titre foireux, encore un
Marsh Posté le 15-08-2003 à 16:44:43
antp a écrit : |
Ouai, ben jsais pas koi mettre, je pensais a "temps reel", t'a une meilleure idee ??
Marsh Posté le 15-08-2003 à 16:50:46
Voila un otre extrait du fichier difftime.txt en remplacant fprintf avec celui ci :
Code :
|
start finish difftime(finish, start) |
Marsh Posté le 15-08-2003 à 17:16:05
giz a écrit : |
je suggère "VC++ 6, pb avec time", c'est pourtant pas dur de faire un titre correct
Marsh Posté le 15-08-2003 à 17:56:38
je déplace sur C ... sauf l'infame saloperie de __try, c'est du C
edit: et y aussi ces infâmes objets... les mecs faites un effort
si vous y tenez pas, je vous montre comment on fait de l'obejt avec une synthaxe à peu près pareil de C++
Code :
|
c'est faisable en C
Marsh Posté le 15-08-2003 à 18:17:54
ben les types time_t sont entiers, donc de granularité 1.
edit: toutes ces erreurs auraient en partie pu être eviter avec la sécurité de typage des stream C++
Marsh Posté le 15-08-2003 à 18:34:15
Citation : si vous y tenez pas, je vous montre comment on fait de l'obejt avec une synthaxe à peu près pareil de C++ |
Je m'y suis intéressé un moment et j'ai quelques bons liens la dessus (heritage, fonctions virtuelles, ...). Mais ca mérite un post à lui tout seul.
Marsh Posté le 16-08-2003 à 11:49:07
Avant de sortir un truc VC++ ou autre compilo a un pb avec time, faudrait lire la doc de time et difftime
Tes var semble etre de type float vu ton print, alors que time retourne des long (time_t)
C comme ton test, difftime retourne un double certe mais c un nombre de seconde niveau granularite, donc un 6.0f niveau printf, les chiffres apres la virgule c juste des erreurs d arrondi.
Donc d abord indique tes types, et apres regarde ou tu fais des conversions qui foute la grouille
Marsh Posté le 16-08-2003 à 11:51:06
Citation : difftime retourne des long |
Citation : difftime retourne un double certe |
sinon, moi comme d'hab, je poste du vent
Marsh Posté le 16-08-2003 à 11:52:42
desole j ai pas tout lu
et je corrige c un double difftime (me manque un cafe pour etre reveille)
Marsh Posté le 16-08-2003 à 11:55:46
VisualC++ a écrit : desole j ai pas tout lu |
même remarque qu'aux autres: faut arrêter d'être désolé et faut lire le sujet
Marsh Posté le 16-08-2003 à 12:00:32
Bah des que ca derive je lis plus mais bon je vois pb avec time et ca arrive sur comment faire de l objet avec du C (bon ok son code est infame te l accorde), et la je switch et j ai switch ton second message ca arrive.
Ferais attention j essayerais
Donc sorry pour avoir dit ce que tu as dit juste au dessus.
Marsh Posté le 16-08-2003 à 13:01:00
Et entre nous, n'en déplaiser a taz, tant que ca mmarche, on a pas tous besoin d'avoir un code aux petits oignons a la mode uniquement C ou C++ ...
En l'occurence le monsieur il veut que sont ime marche, et tes remarques sur la progrmmation objets, je crois qu'il n'en a que foutre, et entre nous, tu m'aurai fait une telle remarque totalement a coté de la plaque, je l'aurai mal pris.
A bon entendeur...
Marsh Posté le 16-08-2003 à 13:03:30
1) ça marche pas
2) s'il avait ecrit en C++ avec les bibliothèques qui vont avec, il aurait pas eu ce genre de problème
3) le C++ est un langage objet, rien d'à côté de la plaque. giz en est pas à son premier post avec son programme, je sais de quoi il en retourne
Marsh Posté le 16-08-2003 à 13:54:56
Bref, je perds mon temps a discuter de ca avec toi.
J'abandonne.
Marsh Posté le 18-08-2003 à 10:46:42
VisualC++ a écrit : Avant de sortir un truc VC++ ou autre compilo a un pb avec time, faudrait lire la doc de time et difftime |
Merci mais je sais y regarder quand j'ai un pb ! : j'ai meme tester leur exemple identique au mien et ca marche pas !
voila la declaration de mes variables :
Code :
|
et un autre fprintf si vous voulez :
Code :
|
avec extrait de fichier :
0.000505819 1 -0 |
Marsh Posté le 18-08-2003 à 10:49:47
Taz a écrit : 1) ça marche pas |
Pour mon ptit programme le C fais tres bien l'affaire, pas besoin que j'inclus de grosse bibliotheque que je ne connais meme pas
Marsh Posté le 18-08-2003 à 11:02:00
1) on est cat C++
2) fprintf (f, "%g\t%g\t%6.0f\n", start, finish, difftime( finish, start ))
ne marche pas à cause des types alors que
f << start << '\t' << finish << '\t'
<< difftime(finish, start) << '\n';
fonctionne tout seul (à la mise en forme près)
t'en entrain de rame pour des conneries. conneries qui ne sont plus possible avec les stream C++
apères tu fais comme tu veux: soit tu fais comme on te dit, soit t'arretes de nous les briser par ce que t'es pas capable de lire la doc et de trouver le format de printf qui va.
Marsh Posté le 18-08-2003 à 11:08:14
bon ben j'ai mis un autre type qui te plait cette fois :
Code :
|
...et ca marche ...bon merci Mr le susceptible
Marsh Posté le 18-08-2003 à 11:08:45
Giz > tu persistes a vouloir afficher des doubles alors que c des entiers les 2 premieres valeurs.
Efin tout comme Taz, j abandonne te laissant croire que tu lis correctement les man/docs
Ps : l exemple de MS sur MSDN (enligne ou pas) me semble pas qu'il font un print de start/stop
Marsh Posté le 18-08-2003 à 11:09:49
giz a écrit : bon ben j'ai mis un autre type qui te plait cette fois :
|
Ah tient le bon type .. comme koi la doc avait raison
Marsh Posté le 15-08-2003 à 15:59:43
Soit le code suivant (VC++6, W98) :
Je comprends pas pkoi la fonction en gras me renvoit tjs 0
PS : j'ai le debug dans mon fichier "difftime.txt" :
la fonction renvoie tjs 0 SAUF ou rarement j'ai 1.000000
la variable finish vaut tjs 0.0000000
voici un extrait du contenu du fichier :
difftime() finish
0.000000 0.000000
0.000000 0.000000
0.000000 0.000000
0.000000 0.000000
0.000000 0.000000
0.000000 0.000000
0.000000 0.000000
0.000000 0.000000
1.000000 0.000000
0.000000 0.000000
0.000000 0.000000
0.000000 0.000000
0.000000 0.000000
0.000000 0.000000
La variable clock est un double de valeur 0.200000
Dans la MSDN l'exemple est pareil, jsuis maudit ?
une idee ?
Message édité par Giz le 15-08-2003 à 17:59:23