Posez votre question Signaler

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

whityzante 32Messages postés 6 novembre 2007Date d'inscription - Dernière réponse le 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 =)
Lire la suite 

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

Suggestions
2 réponses
Réponse
+2
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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 )
Ajouter un commentaire
Ce document intitulé « Problème avec les espaces avec fprintf (en C) » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?