créer une matrice de pointeurs de fichiers
Comment puis-je faire un tableau de pointeurs de fichiers dans C?
Je voudrais créer un tableau de pointeurs de fichiers pour les arguments de main... comme a1.txt, a2.txt, etc... Donc, je voudrais exécuter ./prog arg1.txt arg2.txt arg3.txt
d'avoir le programme de l'utilisation de ces fichiers.
L'argument principal est char **argv
De argv, je voudrais créer le tableau des fichiers/les pointeurs de fichiers. C'est ce que j'ai jusqu'à présent.
FILE *inputFiles[argc - 1];
int i;
for (i = 1; i < argc; i++)
inputFiles[i] = fopen(argv[i], "r");
Je ne peux pas trouver quelque chose de mal avec elle. Quel est le problème?
OriginalL'auteur Hristo | 2010-02-11
Vous devez vous connecter pour publier un commentaire.
Le code est bien, mais n'oubliez pas de compiler en C99.
Si vous n'utilisez pas C99, vous avez besoin pour créer le tableau sur le tas, comme:
il n'y a aucun moyen de récupérer le nom du fichier à partir du FICHIER*. Mais puisque vous avez le tableau argv, le nom de fichier de inputFiles[n] peut être trouvé à la argv[n].
oui, j'ai les noms des fichiers stockés dans un autre tableau, je me demandais juste si je peux le faire dans l'autre sens. Je suis nouveau sur C, c'est ma 4ème semaine 🙂
OriginalL'auteur kennytm
Il imprime pointeurs différents pour chaque pointeur de fichier avec les noms. En permettant à l'OS de fermer correctement les fichiers 🙂
OriginalL'auteur Arthur Kalliokoski