Je dois séparer les valeurs par une virgule dans chaque cas, mais la dernière. Divers messages suggèrent d'utiliser for
au lieu de foreach
, mais comme cela est un patch, et je ne pas utiliser C, comment puis-je convertir foreach_point(t->board)
à une boucle for
?C: comment convertir foreach_point (t-> carte) en boucle?
Répondre
Il est fondamentalement la même syntaxe que pour une boucle en C#:
for (int i = 0; i < NUM_ELEMENTS; i++)
{
t->board[i] ...
}
Vous aurez besoin de connaître NUM_ELEMENTS
, évidemment!
N'existe-t-il pas de test pour la longueur – peepo
@peepo: Si 't-> board' est un pointeur sur une mémoire allouée (c'est-à-dire un tableau" dynamique "), alors non. –
Je ne sais pas ce que foreach_point
fait, mais si j'avez bien deviné, je fais quelque chose comme:
printf("%d", t_board[0]); /* print the 1st element */
for (k = 1; k < NUM_ELEMENTS; k++) { /* notice `k = 1`, not the usual `k = 0` */
printf(", %d", t_board[k]);
}
puts("");
Ceci est en fait responsable.
CCAN (pensez CPAN, mais pour C) does have a foreach module cela fonctionnerait probablement pour vous. Notez, Rusty Russel (l'un des principaux pirates du noyau Linux) maintient CCAN, ces liens sont très peu susceptibles de disparaître à l'avenir.
est ici la mise en œuvre (directement à partir du lien, c'est un exemple trivial):
// Figure out how to get usage: message out of a program.
#include <ccan/foreach/foreach.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <err.h>
// Returns true if program outputs "usage:"
static bool try_usage(const char *prog, const char *arg)
{
char *command;
FILE *in;
int status;
command = malloc(strlen(prog) + 1 + strlen(arg) + 1 +
sizeof("</dev/null 2>&1 | grep -qiw usage:"));
sprintf(command, "%s %s </dev/null 2>&1 | grep -qiw usage:",
prog, arg);
in = popen(command, "r");
if (!in)
err(2, "running '%s'", command);
status = pclose(in);
free(command);
return (WIFEXITED(status) && WEXITSTATUS(status) == 0);
}
int main(int argc, char *argv[])
{
const char *arg;
if (argc != 2)
errx(1, "Usage: %s <progname>\n"
"Figures out how to get usage message", argv[0]);
foreach_ptr(arg, "--help", "-h", "--usage", "-?", "") {
if (try_usage(argv[1], arg)) {
printf("%s %s\n", argv[1], arg);
exit(0);
}
}
printf("%s is unhelpful\n", argv[1]);
exit(1);
}
Avec un peu de travail, cela devrait probablement faire ce que vous voulez.
- 1. Convertir l'option pointeur en boucle en C#
- 2. Convertir la carte C++ en c arrays - Performance
- 3. convertir pour boucle en boucle while
- 4. Convertir la boucle For en boucle Parallel.For
- 5. Comment convertir une boucle en STL for_each
- 6. Comment convertir une boucle while while en boucle while
- 7. Comment convertir (pour boucle) en boucle (do-while)?
- 8. Convertir en boucle pour appliquer
- 9. Utilisation de TGT acquis en Java pour SSH/Autres applications
- 10. Comment convertir Carte en JSON en utilisant Json4s
- 11. Comment convertir une carte en tableau bidimensionnel en java?
- 12. Comment convertir en utilisant C#?
- 13. Comment convertir les données de boucle en 1 seule chaîne
- 14. comment obtenir le pointeur de type carte en C++, carte
- 15. Comment créer une carte dans une carte efficacement en C++
- 16. Comment convertir le code C# en C++
- 17. Carte d'impression en C#
- 18. carte intervalle en C++
- 19. tableau Convertir en boucle en chaîne
- 20. Comment générer une carte mémoire en C++
- 21. convertir C++ en objectif-c
- 22. C# Programmation en boucle
- 23. Conversion de hachage ruby en carte C++
- 24. En C, Comment convertir char * en hexadécimal
- 25. Comment convertir Emgu.image en image en C#?
- 26. comment convertir int [] [] en int ** en C++
- 27. Comment convertir CString en CTime en C++?
- 28. Comment convertir Ulong en Lptstr en C
- 29. comment convertir l'image en octets [] en C#
- 30. comment convertir décimal en binaire en C++
Cette question vise-t-elle à clarifier les articles précédents? Lesquels? Pouvez-vous fournir un peu plus de détails pour permettre à la communauté de mieux vous aider? – Greg