Problème avec les espaces avec fprintf (en C)

Fermé
whityzante Messages postés 32 Date d'inscription mardi 6 novembre 2007 Statut Membre Dernière intervention 16 décembre 2008 - 6 nov. 2007 à 19:20
whityzante Messages postés 32 Date d'inscription mardi 6 novembre 2007 Statut Membre Dernière intervention 16 décembre 2008 - 6 nov. 2007 à 19:48
Tout d'abord bonjour à tous, je suis nouveau sur CommentCaMarche.
Voilà mon problème:
Je suis tout débutant et essaye d'apprendre à programmer en C.
J'utilise comme IDE et compilateur Devc++
Je viens d'essayer d'écrire un petit programme pour demander de taper du texte, et ensuite l'écrire dans un document.txt (nommé test.txt)
Donc tout ce passe bien, quand j'éxecute le programme, je tape le texte à afficher dans mon document test.txt, seulement l'écriture dans le fichier s'arrête au premier espace.

(par exemple, si je tape "Salut ca roule?", il n'y aura que Salut d'écrit dans mon test.txt ...)

voila mon code:

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

int main()
{
FILE*pValid =NULL;
char pfileName[50] = {0};
char texte[800]={0};
int longueurChaine;

printf("Entrez le nom du fichier a ouvrir:\n");
scanf("%s",pfileName);
pValid = fopen(("%s",pfileName),"r+");
if(pValid==NULL)
{printf("Echec lors de ouverture\n");
system("PAUSE");}
else
{printf("Entrer le texte a ecrire:\n");
scanf("%s",texte);
fprintf(pValid,"%s",texte);
fclose(pValid);}
return 0;
}

Si quelqu'un pouvait m'éclairer ce serait sympa, merci d'avance =)
A voir également:

2 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 836
6 nov. 2007 à 19:29
Salut

Ceci est normal. Dans scanf("%s",texte), le %s va s'arrêter au premier blanc, le reste sera stocké dans le buffer clavier.
Utilise : fgets(texte,sizeof(texte),stdin); /*stdin est le flux entrée*/

N'hésite pas, si tu as des questions
2
whityzante Messages postés 32 Date d'inscription mardi 6 novembre 2007 Statut Membre Dernière intervention 16 décembre 2008 6
6 nov. 2007 à 19:48
Merci beaucoup pour cette réponse rapide fiddy, tout baigne avec fgets =)
Je vais quand même essayer d'écrire une fonction pour que ça roule avec un scanf, même si j'ai peu d'espoir =)
Je reviens quand je bloque (autrement dis, à tout de suite ;p )
0