gets() a la suite de scanf() -> probleme
	
	
		Bonjour.
Je me suis récement rendus compte que l'utilisation de gets() a la suite de scanf() posait probleme, aucune valeur n etait demandé par gets().
J'ai donc cherché dans mon grimoir magique et je pense que la raison est que : gets() prends pour valeur le "\n" que l'on tape innocement pour annoncer la fin de la saisie lors de l'utilisation de la fonctions scanf().
La solution que j'ai trouvé est simlple, demander deux fois d affilé la valeur avec gets... :
	Code:
	
| 12
 3
 4
 5
 6
 
 |  
char *ickis
 
scanf(......)
gets(ickis);
gets(ickis); | 
 
Si quelqun avait une meilleure solution a me fournir, je serais bien content  :)
	 
	
	
	
		Re: gets() a la suite de scanf() -> probleme
	
	
		
	Citation:
	
		
		
			
				Envoyé par ickis
				
			
			Je me suis récement rendus compte que l'utilisation de gets() a la suite de scanf() posait probleme, aucune valeur n etait demandé par gets().
Si quelqun avait une meilleure solution a me fournir, je serais bien content  :)
			
		
	 
 L'utilisation de gets() est proscrite. Cette fonction est à l'origine de nombreuses attaques par 'buffer overflow'.
Le mieux est d'utiliser fgets() et la fonction de conversion qui va bien : sscanf(), strto[u]l(), strtod() etc.
De plus, fgets() lit le '\n', ce qui résoud le problème de gets() et scanf()  qui laissent trainer les '\n' dans le flux d'entrée, causant des comportements étranges...