[Langage C] fscanf et espace

Résolu/Fermé
bkrqpzef Messages postés 197 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 13 juillet 2011 - 6 janv. 2009 à 11:49
bkrqpzef Messages postés 197 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 13 juillet 2011 - 6 janv. 2009 à 13:38
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.
A voir également:

3 réponses

dubcek Messages postés 18757 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 19 décembre 2024 5 623
6 janv. 2009 à 12:30
hello
il manque le format
fprintf(Ftitre, "%s\n", "testons le");
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 843
6 janv. 2009 à 13:04
Le format est facultatif, tout comme avec printf.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 843
6 janv. 2009 à 13:07
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
bkrqpzef Messages postés 197 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 13 juillet 2011 5
6 janv. 2009 à 13:38
Solution très simple merci fiddy !!!!
0