Scanf / printf avec variable char

Résolu
Signaler
Messages postés
8
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
8 avril 2006
-
Messages postés
8
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
8 avril 2006
-
Bonjour,

je début en C, et j'ai un problème que je n'arrive pas à résoudre, malgré que le reste du programme soit plus complexe et que ça tourne bien. J'ai ceci :

char nom ;

prinft("Quel est votre nom ?\n") ;
scanf("%s", &nom) ;
printf("Salut %s bienvenue !!", nom) ;

et la j'ai un méchant message d'erreur qui me dit "... à rencontré un problème, veuillez nous excuser pour le désagrément encouru".

Ce message intervient au moment de la validation de la saisie de la variable nom.

Quelqu'un peut me filer un coup de main ?? Merci pour votre aide.

13 réponses

Messages postés
99
Date d'inscription
mercredi 12 mai 2004
Statut
Membre
Dernière intervention
29 mars 2006

char crée de la place pour 1 acractère. Il faut utiliser une chaine de caractères.



char nom [50];//50 indique qu'il peut rentrer au maximum 49 carctères.

prinft("Quel est votre nom ?\n") ;

scanf("%s", nom) ;

printf("Salut %s bienvenue !!", nom) ;
Messages postés
15213
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
21 janvier 2022
101
%s --> fonctionne pour une chaine de caractère

char nom[50];
printf("..");
scanf("%s",nom);
...

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
15213
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
21 janvier 2022
101
Grrrr! Grillé...avec le même exemple!!!!!

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
99
Date d'inscription
mercredi 12 mai 2004
Statut
Membre
Dernière intervention
29 mars 2006

Et ouai ! Je suis l'homme qui valide plus vite que son ombre.
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
10
Sachant que scanf est très mauvais pour ca, il aurait fallu dégainer moins vite et conseiller fgets
Messages postés
99
Date d'inscription
mercredi 12 mai 2004
Statut
Membre
Dernière intervention
29 mars 2006

La question ne portai pas sur le scanf mais sur la chaine de caractères.

Je suis d'acord avec toi sur le fait que scanf n'est pas pratique ici.
Mais pour une lecture sur l'écran je préfere gets a fgets.
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
10
Bah tu devrais pas, fgets empêche les buffer overflow (l'écran est un fichier comme les autres pour fgets)
Messages postés
755
Date d'inscription
samedi 15 mai 2004
Statut
Membre
Dernière intervention
30 janvier 2011

avec scanf je crois que c scanf("%c",&nom);

:) comme sa dans le vent :)
Messages postés
25
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
3 mai 2006

le mieux c'est d'utiliser (selon moi lol) cin et cout
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
10
cin et cout en C, ca risque de poser des problèmes, tu crois pas?
Messages postés
25
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
3 mai 2006

ben il programme sous visual c++ ?non?
ce qui veut dire qu'il peut metre du code de c et de c++ ?
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
10
Il a dit qu'il codait en C, c'est tout. Par contre, jamais parlé de visual C++
Messages postés
8
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
8 avril 2006

Bonjour,

merci beaucoup pour toutes vos contributions.
Ca m'a beaucoup aidé, même si la nature du problème pouvait paraitre toute bete.