Voila, comme le titre l'indique j'aimerais passer à une fonction un paramètre contenant un fichier.
Pour ce faire, j'ai écris ce code:
#include <stdio.h>
#include <stdlib.h>
#define TAILLE_MAX 100
void traitementFichier(fichier)
{
char chaine[TAILLE_MAX] = "";
int test = 0;
while(fgets(chaine, TAILLE_MAX, fichier) != NULL && test <= 10);
{
printf("%s", chaine);
test ++;
}
}
int main(int argc, char *argv[])
{
FILE *monFichier = NULL;
monFichier = fopen("dico.txt", "r");
if(monFichier != NULL)
{
traitementFichier(monFichier);
fclose(monFichier);
}
else
{
printf("Désolé, mais le fichier n'a pas pu etre ouvert");
}
return 0;
}
Mais lors de la compilation, j'obtiens un Segmentation fault (core dumped). J'en déduis donc, que ce n'est pas comme ça que l'on passe un fichier en parametre.
"gets () et fgets () retournent s en cas de succès, et NULL en cas d'erreur ou lorsque la fin du fichier se produit alors qu'aucun caractère n'a été lu"
Et je dirais que ta variable test bloque aussi la lecture. Une fois 10 caractère lus on ne peut plus en lire d'autres car test n'est jamais remis à zéro.
Et ta chaîne est initialisé avec un espace c'est fait exprès? J'ai pas souvent vu ça
Donc voilà je pense que tu as une mauvaise condition dans le while:) J'espère t'avoir aidé bonne chance
Ps: Je suis fatigué et J'ai pris peu de temps pour lire je me suis peut être trompé
Cet exemple est intéressant car il montre bien qu'il faut toujours faire comme si un Warning était une véritable erreur (jusqu'à le comprendre en tout cas).
- Edité par robun 22 septembre 2018 à 1:43:36
passer un fichier en parametre à une fonction
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Quand on fait tout, on est bon en rien...
Quand on fait tout, on est bon en rien...
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
Quand on fait tout, on est bon en rien...