Bonjour,

L'objectif est de chercher un mot au hasard dans un fichier texte.

La fonction fgets me semble tout indiqué pour faire ce genre de chose.

J'ai un warning dans ma fonction et je sais pourquoi, seulement, je souhaite à tout pris que ma fonction chercher ne renvoie rien.

J'aime pas les warnings, même si j'entends par ci par là que lors de grand projet c'est presque inévitable.

Bref voici mon code, si amélioration, préférence de fonction (en étant explicite du pourquoi) ou autre, bien évidemment, je suis ouvert à toutes suggestions.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void chercher(char *mot, FILE *file, int n_line)
{
    int counter = 0;
    if (file == NULL)
    {
        puts("Erreur de lecture");
        exit(1);
    }
    while (counter != n_line)
    {
        fgets(mot, MAX_CHAR, file);
        if(mot == NULL)
        {
            puts("Ligne non trouvée");
            exit(1);
        }
        counter++;
    }
}
Voilà une initialisation exemple

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int main(void)
{
    int aleatoire;
    char fichier[] = "/home/fred1599/Desktop/test.txt";
    char word[MAX_CHAR];
    FILE *fic;
    srand ( time(NULL) );
 
    fic = fopen(fichier, "r");
 
    n_alea(MAX, &aleatoire);
 
    chercher(word, fic, aleatoire);
 
    printf("%d\n", aleatoire);
 
    printf("%s\n", word);
 
    return 0;
}
EDIT : J'ai oublié de mettre le warning

/home/fred1599/Desktop/test.c|26|warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result [-Wunused-result]|
EDIT 2 : Rajout de srand