Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1951 connectés 

  FORUM HardWare.fr
  Programmation

  [C - Linux] problème avec scanf

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C - Linux] problème avec scanf

n°86218
nikewlas
Posté le 04-01-2002 à 20:56:08  profilanswer
 

Bonjour,
 
je comprends pas pourquoi quand je fais:
 
scanf("%s",chaine);
printf("%s",chaine);
 
et que la chaîne saisie est "totototo to to to to" le programme m' affiche
 
totototo
 
Comment faire pour éviter çà ??
Merci.

mood
Publicité
Posté le 04-01-2002 à 20:56:08  profilanswer
 

n°86221
Gounok
Faux traître
Posté le 04-01-2002 à 20:59:47  profilanswer
 

Essaie gets, par contre je l'utilise jamais donc regarde dans la doc ;)

n°86251
Dj_Jim
Posté le 04-01-2002 à 22:42:31  profilanswer
 

nikewlas a écrit a écrit :

Bonjour,
 
je comprends pas pourquoi quand je fais:
 
scanf("%s",chaine);
printf("%s",chaine);
 
et que la chaîne saisie est "totototo to to to to" le programme m' affiche
 
totototo
 
Comment faire pour éviter çà ??
Merci.  




kelle est la declaration de chaine sil te plait????


---------------
Jim
n°86292
LeSchmollu​ck
Posté le 05-01-2002 à 00:28:39  profilanswer
 

C'est très simple le scanf s'arrete au PREMIER  
caractère séparateur rencontré :
genre '\0',' ' (l'espace), tabulation,...
 
ta variable reçoit la chaîne jusqu'au premier ' '
donc  '12345ABCD ABC AB ABCD\0'
donne '12345ABCD\0'(dans la variable)
 
('\0' == le retour chariot, RETURN quoi...)

n°86294
Tetedeienc​h
Head Of God
Posté le 05-01-2002 à 00:45:33  profilanswer
 

Mon conseil : oublie pas le \n a la fin du printf ( printf("%s\n",chaine) ) pour passer a la ligne et mieux voir ce que tu as écrit.
 
Et ils ont raison, tous la, le scanf s'arrete au premier espace rencontré, et autres aussi ( \0, \n, etc).


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
n°86300
LetoII
Le dormeur doit se réveiller
Posté le 05-01-2002 à 01:05:31  profilanswer
 

C'est pour ça qu'il y a une fonction qui prend toute la ligne et remplace \n par \0 et qui doit être gets si mes souvenirs sont bons

n°86304
[SDF]Poire
Vive Grumly
Posté le 05-01-2002 à 01:18:37  profilanswer
 

Gets
Syntax
 
#include <stdio.h>
char *gets(char *s);
 
Description
 
Gets a string from stdin.
gets collects a string of characters terminated by a new line from the standard input stream stdin and puts it into s. The new line is replaced by a null character (\0) in s.
gets allows input strings to contain certain whitespace characters (spaces, tabs). gets returns when it encounters a new line; everything up to the new line is copied into s.
The gets function is not length-terminated. If the input string is sufficiently large, data can be overwritten and corrupted. The fgets function provides better control of input strings.
 
Note: For Win32s or Win32 GUI applications, stdin must be redirected.
 
Return Value
 
On success, gets returns the string argument s.
On end-of-file or error, it returns NULL
 
Borland C++ 5.0 Programmer's Guide


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [C - Linux] problème avec scanf

 

Sujets relatifs
[php mySQL] ! ptit problème avec select distinct et order by[C - Linux] Compilation avec ncurses
[WEFT-.EOT] Problème d'incorporation de police ...[C-Linux] actions avec les touches du claiver
Architecture des MACHINES probleme[ visual Basic ] problème de base de BDD.
Probleme de 'passage' de variable en javascript[C-Linux] Savoir quel est le n° du bouton où on clique...
[C & Linux] comment "tuer" un processus ?[c++] petite question sur les pointeurs (pas un problème)
Plus de sujets relatifs à : [C - Linux] problème avec scanf


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR