ok
Version imprimable
ok
Tu te souviens quand tu étais au primaire et qu'on te faisait compter les poteaux téléphoniques en t'expliquant qu'il y avait un poteau de plus que d'espace entre les poteaux ? Ben voilà. Tu aurais écouté cette leçon à l'école tu n'aurais pas ce problème aujourd'hui.
Donc compter de 0 (inclus) à 16 (inclus) ça fait 17 (t'as qu'à compter sur tes doigts quitte à enlever tes chaussures pour compléter si tu ne me crois pas).
Ouais, c'est effectivement plus facile d'accuser le compteur que de remettre en cause sa façon de l'utiliser...
Code:
1
2
3
4
5
6
7
8
9 void dump(unsigned char t[], int nb) { int i; for (i=0; i < nb; i++) { if ((i % 16) == 0) printf("%s%04d", i ?"\n" :"", i); printf(" %02x", t[i]); } printf("\n"); }
Voilà. Pas de compteur, pas d'octet en trop
PS: tu remarqueras que ce code correspond exactement aux préconisations de xdelatour. En effet, il contient une boucle, un test, un affichage. Comme quoi, tu l'aurais écouté dès le départ...
Oh là là le :boulet: !!!
Tu écris printf("%04d ",i) et tu n'arrives pas à reconnaitre cette écriture dans printf("%s%04d", ..., i) ?
Sinon ce n'est pas "?" mais expression ?v1 :v2 valant v1 si "expression" est vraie et v2 si "expression" est fausse. Un des opérateurs du C qu'on explique dans tous les tutoriels. As-tu ouvert un livre de C une seule fois dans ta vie ???
Oh mince ? Ca c'est bien dommage. T'as essayé k=14 pour voir ?