Carlos G a rencontré du code C++ problématique et a enquêté sur son histoire.
Le code d'origine analysait les dates d'expiration en supposant un format « YYMM ».
Il utilisait sscanf avec une chaîne de format « %2d%2d » pour extraire l'année et le mois.
Cependant, le format d'entrée réel a été découvert être « MMYY ».
Une correction défectueuse a consisté à réarranger manuellement les caractères de la chaîne d'entrée en « YYMM » avant l'analyse.
Cette solution intermédiaire a été justifiée par un commentaire trompeur et une erreur d'attribution.
Le développeur croyait que le format d'entrée avait été modifié ailleurs, ce qui a conduit à la réarrangement complexe.
Carlos G a ensuite fourni une solution propre en corrigeant la chaîne de format sscanf.
Le nouveau code suppose correctement un format d'entrée « MMYY ».
Il analyse directement l'entrée dans des variables de mois et d'année sans manipulation de chaîne inutile.
thedailywtf.com
CodeSOD: Going on a teDa
