5 réponses
fofo73
Messages postés
295
Date d'inscription
vendredi 8 mai 2009
Statut
Membre
Dernière intervention
28 mai 2011
8
26 févr. 2010 à 11:33
26 févr. 2010 à 11:33
met un espace
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 622
26 févr. 2010 à 13:11
26 févr. 2010 à 13:11
montre ton code
/* printf() */ #include <stdio.h> #include <stdlib.h> char *m1 = "Biniare"; char *m2 = "Decimal"; char *m3 = "Octal"; char *m4 = "Hexadecimal"; int main(void) { float d1 = 10000.123; int n; puts("affichage d'un nombre avec plusieur largeurs de champs"); printf("%5f\n", d1); printf("%10f\n", d1); printf("%15f\n", d1); printf("%20f\n", d1); printf("%25f\n", d1); puts("Appuyez sur Entree pour continuer..."); getchar(); puts("\nOn utilise * pour obtenir la largeur de champs d'une variable de la liste des arguments.\n"); for(n = 5; n < 25; n+=5) printf("%*f\n", n, d1); puts("Appuyez sur Entree pour continuer ..."); getchar(); puts("\nAffichage en Octal, decimale, et hexadecimal."); puts("On utilise # a gauche des sorties octales et hex avec 0 et 0X"); puts("On utilise - a gauche pour justifier chaque valeur dans son champ"); puts("On utilise d'abord le nom des colones.\n"); printf("%-15s%-15s%-15s\n", m2, m3, m4); for(n = 1; n < 20; n++) printf("%-15d%-#15o%-#15X\n", n, n, n); puts("Appuyez sur Entree pour continuer ..."); getchar(); puts("\n\nOn utilise la commande de conversion %n pour compter"); puts("Les caracteres. \n"); printf("%s%s%s%s %n\n", m1, m2, m3, m4, &n); printf("\n\nLe dernier printf() a afficher %d caracteres.\n", n); exit(EXIT_SUCCESS); }
le problème c'est ici
printf("%s%s%s%s %n\n", m1, m2, m3, m4, &n); printf("\n\nLe dernier printf() a afficher %d caracteres.\n", n);
ici normalement la chaine vaut 3à caractères alors que quand je test le code n conserve la valeur de la boucle
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 622
27 févr. 2010 à 08:26
27 févr. 2010 à 08:26
et en utilisant une autre variable que n ?
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 622
27 févr. 2010 à 10:01
27 févr. 2010 à 10:01
chez moi, il affiche bien 31 caractères
On utilise la commande de conversion %n pour compter Les caracteres. BiniareDecimalOctalHexadecimal Le dernier printf() a afficher 31 caracteres.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 622
27 févr. 2010 à 16:03
27 févr. 2010 à 16:03
possible, je suis sur Ubuntu, regarde la doc. printf
as-tu essayé une autre variable que n ?
as-tu essayé une autre variable que n ?
voici le code en essayant une variable que n
et voici le résultat
/* printf() */ #include <stdio.h> #include <stdlib.h> char *m1 = "Biniare"; char *m2 = "Decimal"; char *m3 = "Octal"; char *m4 = "Hexadecimal"; int main(void) { float d1 = 10000.123; int n, s; puts("affichage d'un nombre avec plusieur largeurs de champs"); printf("%5f\n", d1); printf("%10f\n", d1); printf("%15f\n", d1); printf("%20f\n", d1); printf("%25f\n", d1); puts("Appuyez sur Entree pour continuer..."); getchar(); puts("\nOn utilise * pour obtenir la largeur de champs d'une variable de la liste des arguments.\n"); for(n = 5; n < 25; n+=5) printf("%*f\n", n, d1); puts("Appuyez sur Entree pour continuer ..."); getchar(); puts("\nAffichage en Octal, decimale, et hexadecimal."); puts("On utilise # a gauche des sorties octales et hex avec 0 et 0X"); puts("On utilise - a gauche pour justifier chaque valeur dans son champ"); puts("On utilise d'abord le nom des colones.\n"); printf("%-15s%-15s%-15s\n", m2, m3, m4); for(n = 1; n < 20; n++) printf("%-15d%-#15o%-#15X\n", n, n, n); puts("Appuyez sur Entree pour continuer ..."); getchar(); puts("\n\nOn utilise la commande de conversion %n pour compter"); puts("Les caracteres. \n"); printf("%s%s%s%s %n\n", m1, m2, m3, m4, &s); printf("\n\nLe dernier printf() a afficher %d caracteres.\n", s); exit(EXIT_SUCCESS); }
et voici le résultat
affichage d'un nombre avec plusieur largeurs de champs 10000.123047 10000.123047 10000.123047 10000.123047 10000.123047 Appuyez sur Entree pour continuer... On utilise * pour obtenir la largeur de champs d'une variable de la liste des ar guments. 10000.123047 10000.123047 10000.123047 10000.123047 Appuyez sur Entree pour continuer ... Affichage en Octal, decimale, et hexadecimal. On utilise # a gauche des sorties octales et hex avec 0 et 0X On utilise - a gauche pour justifier chaque valeur dans son champ On utilise d'abord le nom des colones. Decimal Octal Hexadecimal 1 01 0X1 2 02 0X2 3 03 0X3 4 04 0X4 5 05 0X5 6 06 0X6 7 07 0X7 8 010 0X8 9 011 0X9 10 012 0XA 11 013 0XB 12 014 0XC 13 015 0XD 14 016 0XE 15 017 0XF 16 020 0X10 17 021 0X11 18 022 0X12 19 023 0X13 Appuyez sur Entree pour continuer ... On utilise la commande de conversion %n pour compter Les caracteres. BiniareDecimalOctalHexadecimal Le dernier printf() a afficher 4199774 caracteres. Process returned 0 (0x0) execution time : 3.295 s Press any key to continue.
26 févr. 2010 à 11:35