Je dois obtenir le fichier depuis le terminal, je sais que la commande va ressembler à:
./a.out < fileName.txt
Je ne suis pas sûr de savoir comment utiliser fgets () dans mon programme pour utiliser le fichier demandé au terminal.
L'utilisation de la redirection envoie le contenu du fichier d'entrée à stdin. Vous devez donc lire stdin dans votre code. Quelque chose comme (vérification d'erreur omise pour plus de clarté)
#include <stdio.h>
#define BUFFERSIZE 100
int main (int argc, char *argv[])
{
char buffer[BUFFERSIZE];
fgets(buffer, BUFFERSIZE , stdin);
printf("Read: %s", buffer);
return 0;
}
1.) vous fermez stdin puis lui affectez un autre gestionnaire de fichiers 2.) Remplacez stdin par un autre gestionnaire de fichiers en utilisant la fonction dup2, vous pouvez le réaliser
Vous n'utilisez pas fgets
, vous utilisez gets
La redirection signifie simplement que votre entrée de terminal sera le contenu du fichier. Mais votre programme ne sait pas d’où il vient, car c’est fait par le système d’exploitation.