Je crois avoir lu attentivement toute la documentation de printf()
mais je n'ai trouvé aucun moyen de l'imprimer, disons, les éléments d'un tableau de 10 éléments de float(s)
.
Par exemple, si j'ai
float[] foo = {1., 2., 3., ..., 10.};
Ensuite, je voudrais avoir une seule déclaration telle que
printf("what_do_I_put_here\n", foo);
Ce qui imprimerait quelque chose comme:
1. 2. 3. .... 10.
Y a-t-il un moyen de le faire dans Vanilla C?
vous devez parcourir les éléments du tableau
float foo[] = {1, 2, 3, 10};
int i;
for (i=0;i < (sizeof (foo) /sizeof (foo[0]));i++) {
printf("%lf\n",foo[i]);
}
ou créer une fonction qui renvoie snprintf empilé, puis l'imprimer avec
printf("%s\n",function_that_makes_pretty_output(foo))
Il n'y a pas de déclaration unique dans la langue qui dit "imprimer un tableau entier à l'écran". Chaque élément du tableau doit être imprimé à l'écran individuellement.
Mais ne vous inquiétez pas, les boucles sont là pour vous sauver !, Je suppose que votre question était uniquement de savoir s'il y avait un moyen et je suppose qu'une personne avec 5 000 répétitions sur SO n'a pas besoin pour voir un extrait de code pour savoir comment les boucles sont implémentées!
Vous devez parcourir le tableau et printf () chaque élément:
for(int i=0;i<10;++i) {
printf("%.2f ", foo[i]);
}
printf("\n");
Je ne pense pas qu'il existe un moyen d'imprimer un tableau pour vous dans printf. La fonction "printf" n'a aucune idée de la longueur de votre tableau.
Vous devez faire une boucle:
for (int i = 0; i < sizeof(foo) / sizeof(float); ++i)
printf("%f", foo[i]);
printf("\n");
C n'est pas un langage de programmation orientée objet (POO). Vous ne pouvez donc pas utiliser de propriétés dans la POO. Par exemple. Il n'y a pas de propriété .length en C. Vous devez donc utiliser des boucles pour votre tâche.