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.
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.
A voir également:
- Scanf chaine de caractere en c
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
- Caractere vide - Guide
- Chaine tnt gratuite sur mobile - Guide
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;
}
Mais quitte à pointer l'erreur, ta contribution aurait été bien plus intéressante, si tu l'avais toi même résolu plutôt que d'attendre que je le fasse...