Scanf et chaine de caracteres avec espaces
Résolu
ajp55
Messages postés
482
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour,
j'ai un problème lorsque j'utilise scanf pour lire une chaine de caractères contenant des espaces. avec l'utilisation de fgets ça marche, sauf que Linux renvoit un message me signalant que cette fonction est dangeureuse. j'opte alors pour le scanf.
voici mon code
l'affichage s'arrête juste aprés l'espace. le prenom ne s'affiche pas.
merci d'avance pour votre aide.
--
HD 500Go
RAM 4Go
j'ai un problème lorsque j'utilise scanf pour lire une chaine de caractères contenant des espaces. avec l'utilisation de fgets ça marche, sauf que Linux renvoit un message me signalant que cette fonction est dangeureuse. j'opte alors pour le scanf.
voici mon code
#include <stdio.h>
#include <stdlib.h>
int main(){
char *nom;
nom=(char*)malloc(sizeof(char)*50);
printf("Entrez votre nom et prenom : ");
scanf("%s",nom);
printf(" Votre nom est = %s",nom);
return 0;
}
l'affichage s'arrête juste aprés l'espace. le prenom ne s'affiche pas.
merci d'avance pour votre aide.
--
HD 500Go
RAM 4Go
2 réponses
-
Tu peux utiliser scanf comme ceci
#include "stdio.h" int main() { char nom[50]; printf("Entrez votre nom et prenom : "); scanf("%[^\n]",nom); printf("Votre nom est : %s",nom); return 0; } -
merci pour votre solution et ça marche.
mais pas une solution qui utiliserait les pointeurs du genre char*?
je voudrai faire de l'allocation dynamique.
vos solutions seront les bienvenues