Scanf et chaine de caracteres avec espaces
Résolu
ajp55
Messages postés
426
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
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
- Chaine tnt gratuite sur mobile - Guide
- Caractere vide - 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...