Stocker un espace dans chaine de caractère

Stocker un espace dans chaine de caractère - C - Programmation

Marsh Posté le 19-11-2008 à 16:44:07    

Salut à vous, j'ai fait ce programme pour apprendre à écrire dans un fichier en C (je débute) et quand j'ouvre le fichier text.txt j'ai que le premier mot rentré ... Donc, y a t il un moyen de "forcer" l'ordi à stocker les espaces de ma phrase dans la chaine ?
 
Merci d'avance.
 

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define TS 10000
  4. int main(int argc, char *argv[])
  5. {
  6.     FILE* fichier = NULL;
  7.     char s[TS];
  8.     int i;
  9.     scanf("%s",&s);
  10.     fichier = fopen("text.txt", "w+" );
  11.     if (fichier != NULL)
  12.     {
  13.         fprintf(fichier,"%s",s);
  14.         fclose(fichier);
  15.     }
  16.     return 0;
  17. }

Reply

Marsh Posté le 19-11-2008 à 16:44:07   

Reply

Marsh Posté le 19-11-2008 à 17:00:00    

Ta chaîne est tronquée à cause de scanf(), qui est une fonction de lecture formatée.
Tu demandes à scanf() de lire une chaîne de caractères, ce qu'il fait jusqu'au premier séparateur trouvé (espace, tabulation, saut de ligne).
De plus, il faut passer à scanf() le paramètre "s", et non "&s".

 

scanf() n'est pas une fonction facile d'accès à un débutant, il est plutôt conseillé d'utiliser fgets().


Message édité par Elmoricq le 19-11-2008 à 17:00:22
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed