Rebonjour à tous,
Je vous expose mes code et vous explique le problème après^^

Le main.c
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "anul_entrer.h"
#include "main.h"
 
#define NBR_JOUEUR 2
 
int main()
{
    int i = 0; //variable d'execution pour les boucles
    char *Recherche [TAILLE_MAX] = {""};
 
    S_InfoJoueur Info[NBR_JOUEUR+1]; //initialisation structure S_InfoJoueur
 
    FILE *DonneesJoueurs = NULL; //initialisation du pointeur sur le fichier
 
    DonneesJoueurs = fopen("DonneesJoueurs.save", "r+"); //ouverture du fichier en methode (lire et ecrire sans creation de fichier)
 
    if (DonneesJoueurs != NULL) { //verification de l ouverture du fichier
        printf("Ouverture fichier ... OK"); //ouverture fichier ok
 
         /*============================================================*/
         /*====================Ecriture des données====================*/
 
         for (i = 0; i < NBR_JOUEUR; i++) { //boucle qui permet l'insertion de données dans le fichier "DonneesJoueurs.txt" temps que le nbr de joueur n'est pas atteint
 
            printf("\n\n\t\t Joueur %d", i+1);//intro avec numero du joueur ("i+1" pour ne pas avoir de "Joueur 0")
 
            printf("\n\n Pseudo : ");//demande d'entrez l'info Pseudo correspondant a la struc S_InfoJoueur=> variable Pseudo.
            *Recherche = fgets(Info[i].Pseudo, TAILLE_MIN, stdin); //recuperation de l'info Pseudo
 
            fprintf(DonneesJoueurs, "%s", anul_entrer(*Recherche)); //ecrit les donnees receuilli dans le fichier text
         } //fin de la boucle for
    }
    else {
        printf("ECHEC ouverture fichier /!\\. Verifiez l'existance du dit fichier sur le disque !!!"); //echec ouverture fichier
    } // fin verif ouverture de fichier
 
    fclose(DonneesJoueurs); //fermeture du fichier
 
    return 0;
}
Le main.h
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
 
#ifndef MAIN
#define MAIN
 
#define TAILLE_MIN 100
#define TAILLE_MAX 1000
 
typedef struct InfoJoueur S_InfoJoueur;
 
struct InfoJoueur
{
    char Pseudo[TAILLE_MIN];
};
 
#endif
le anul_entrer (source du problème je pense)
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
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
 
char anul_entrer (char *Recherche)
{
    char Chaine;
 
    *strchr(Recherche, '\n');
 
    if(Recherche != NULL) {
        Chaine = *strchr(Recherche, '\n') = '\0';
        return Chaine;
    }
    else {
        return *Recherche;
    }
}
bon le anul_entrer.h ne contient que le prototype donc je vous l'épargne^^.

Le problème :

Alors déjà, de temps en temps, la compilation m'indique : "main.c|33|warning: format argument is not a pointer (arg 3)|"
Ce qui correspond à la ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
fprintf(DonneesJoueurs, "%s", anul_entrer(*Recherche)); //écrit les données recueilli dans le fichier texte
Sinon quand il me laisse exécuter le programme, et bien tout ce déroule comme il faut sauf que dans mon fichier texte "DonneesJoueur.save" tout ce que cela m'écrit c'est : (NULL)(NULL) au lieu des deux pseudo.

En espérant avoir été clair ^^ need help :'(

EDIT :

J'ai tenté de modifier un peu mon "anul_entrer" :

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
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
 
char anul_entrer (char *Recherche)
{
    char *Chaine;
 
    *Chaine = *strchr(Recherche, '\n');
 
    if(Chaine != NULL) {
        *Chaine = *strchr(Recherche, '\n') = '\0';
        return *Chaine;
    }
    else {
        return *Recherche;
    }
}
Mais la sa plante tout de suite après la saisi du premier pseudo ^^