[Langage C] fscanf et espace

Résolu
bkrqpzef Messages postés 213 Statut Membre -  
bkrqpzef Messages postés 213 Statut Membre -
Bonjour à tous,
Voilà j'ai un soucis. Mon code est le suivant :

FILE *Ftitre;
Ftitre=fopen("Ftitre.txt", "w");
fprintf(Ftitre, "testons le");
fclose(Ftitre);

Et j'ai dans un autre programme, qui exploite le fichier Ftitre.txt créé par le premier :

char titre[100];
FILE *Ftitre;
Ftitre=fopen("Ftitre.txt", "r");
fscanf(Ftitre, "%s", &titre);
fclose(Ftitre);

A mon grand désepoir, le fichier Ftitre.txt ne contient que le mot "testons", alors que je voudrais "testons le". Il ne supporte pas les espaces. (Il considère les espaces comme un caractère "\0" ???)
Si vous avez une idée, je suis preneur.
Merchi.
Configuration: Windows XP
Firefox 3.0.5

3 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    il manque le format
    fprintf(Ftitre, "%s\n", "testons le");
    0
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Le format est facultatif, tout comme avec printf.
      0
  2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    fscanf considère l'espace, tout comme la tabulation, comme des caractères de terminaison. Donc il s'arrêtera au premier espace rencontré.
    Utilise plutôt fgets : fgets(titre,sizeof titre, Ftitre);
    Cdlt
    0
  3. bkrqpzef Messages postés 213 Statut Membre 5
     
    Solution très simple merci fiddy !!!!
    0