Probleme Fopen en C

Résolu
Bonjour,
j'ai voulu faire un programme qui écris dans un fichier via un fopen en C .
Tout marche bien sauf qu'il ne m'enregistre dans le fichier seulement le premier mot , c'est a dire jusqu'au premier espace .
Voici le code :

#include <stdio.h>
#include <stdlib.h>


int main(int argc, char *argv[])
{
    FILE* fichier = NULL;
    char texte[1000] ;
 
    fichier = fopen("test.txt", "a");
 
    if (fichier != NULL)
    {
        // On demande le texte 
        printf("Votre message (max 1000 caracteres ):");
        scanf("%s", &texte);
 
        // On l'écrit dans le fichier
        fprintf(fichier, "%s", texte);
        fclose(fichier);
    }
    system("PAUSE") ;
    return 0;
}


Cordialement
Alexandre
http://www.easy-clics.fr
Configuration: Windows XP
Firefox 3.0.11

9 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Salut,
    C'est normal, scanf("%s") s'arrête au premier espace.
    Utilise plutôt fgets(texte,sizeof texte,fichier);
    Cdlt
    1. c'est toujours la meme chose , il s'arrete au premier espace , j'avais mis ce paramètre parce que c'est un programme de journal intime !
      1. Illustre plutot ton idée avec un code concret , je suis assez débutant encore .
        Cdlt
        1. Contributeur
          C'est pôurtant clair !
          remplace scanf(..) par le fgets(texte,sizeof texte,stdin);