ja ja... niet iedereen heeft dezelfde kennis... wees daarom ook eens gewillig en geef een antwoord op een vraag ;)
Verwijderd
1
2
| temp[2] = 0; int result = 60 * atoi(temp) + atoi(temp + 3); |
is een optie hoewel het meer C dan C++ is...
ja ja... niet iedereen heeft dezelfde kennis... wees daarom ook eens gewillig en geef een antwoord op een vraag ;)
Verwijderd
1
2
3
4
5
| char c; // to eat the ":" in the time int hours, minutes; std::istringstream time(temp); time >> hours >> c >> minutes; int result = hours * 60 + minutes; |
En curry684 heeft zeker gelijk: zorg dat je alle code die je niet zelf hebt geschreven minimaal geheel begrijpt voordat je het gebruikt. Dan zie je bijvoorbeeld dat mijn eerdere fragment veel minder robuust is dan het fragment hier: de eerste zal bijvoorbeeld niet werken als de tijd per ongeluk in het formaat H:mm is i.p.v. hh:mm en ook niet als er per ongeluk spaties in de temp string zitten... De C++ manier hierboven heeft daar allemaal geen last van: deze behandelt ook de tijd " 2 :15" op de juiste manier.
Overigens vind ik dat je een variabele nooit "temp" moet noemen; geef 'm dan gewoon een zinnige naam! De enige uitzondering is misschien bij het omwisselen van elementen in een sorteeralgoritme, waar de tijdelijke variabele "echt heel erg tijdelijk" is (en je die constructie eigenlijk alleen gebruikt bij gebrek aan een post-assignment operator).
[ Voor 11% gewijzigd door Soultaker op 29-08-2003 01:22 ]
Ik heb het even getest en het werkt dus ook zonder Temp[2]=0 bijvoorbeeld.
De rest is wel logisch.. denk ik...
Temp+3 dat dat de cursor naar de 3e plaats zet... tja dat moet je gewoon weten denk ik.
ja ja... niet iedereen heeft dezelfde kennis... wees daarom ook eens gewillig en geef een antwoord op een vraag ;)
Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.
Verwijderd