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

  1. Contributeur
    Salut,
    C'est normal, scanf("%s") s'arrête au premier espace.
    Utilise plutôt fgets(texte,sizeof texte,fichier);
    Cdlt
    2
    1. salut
      essaye ca:

      fichier = fopen("test.txt", "w");
      0
      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 !
        0
        1. essaye ca
          fichier = fopen("test.txt", "r+");
          0
          1. et
            fichier = fopen("test.txt", "w+"); ?
            0
            1. de meme
              on reprend sa demain , je dois partir
              0
              1. Illustre plutot ton idée avec un code concret , je suis assez débutant encore .
                Cdlt
                0
                1. Contributeur
                  C'est pôurtant clair !
                  remplace scanf(..) par le fgets(texte,sizeof texte,stdin);
                  0
              2. C'est bon sa marche merci !
                0