Partie du programme non exécutée

magicbisous-nours Messages postés 56 Statut Membre -  
magicbisous-nours Messages postés 56 Statut Membre -
Bonjour je suis débutant développeur C et je développe avec Visual C++6.0 il y a un programme qui ne s'exécute qu'en partie lorsque je le leance voici le code source :
"#include <stdio.h>
#include <conio.h>

char main()
{

/*déclaration de la variable*/

char nom;
nom = ' ';

/*saisie de la variable*/

printf("Quel est ton nom?\n");
scanf("%c\n",&nom);

/*conditions*/

if((nom =='ange'))
{
printf("Je taime mon coeur\n");
}
else
{
if((nom =='seb'))
{
printf("Coucou grateur\n");
}
}

/*attendre avant de sortir*/

getch();

return(0);
}"
Visual C++ me dit que la syntaxe est correcte (pas d'erreurs ni de warnings) mais quand je lance le programme il me demande le nom, il me laisse l'entrer...puis rien ne se passe.... jusqu'à ce que j'appuies sur "entrer" à ce moment, la fonction getch prend son rôle... quelqu'un pourrait-il m'aider s'il vous plaît??
A voir également:

13 réponses

arth Messages postés 10414 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
normal tu ne peux pas avoir de réponse .
pour valider un scanf,il faut appuyer sur entrée.
le probleme c'est que le scanf ("%c") ne prend qu'un caratere,%c ne signifiant qu'un seul caractere.

declare nom que ceci : char nom[80];
.....................
scanf("%s",nom);

voila!
0
magicbisous-nours Messages postés 56 Statut Membre
 
ok merci beaucoup!!
0
arth Messages postés 10414 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
de rien si ca a pu t'aider c'est le principal
0
magicbisous-nours Messages postés 56 Statut Membre
 
ben...justement... :$ maintenant quand je compile il me dit plein de trucs (j'ai la version anglaise...) genre :
"test2.c(7) : warning C4047: '==' : 'char [9]' differs in levels of indirection from 'const int '
test2.c(7) : warning C4553: '==' : operator has no effect; did you intend '='?
test2.c(13) : warning C4047: '==' : 'char [9]' differs in levels of indirection from 'const int '
test2.c(19) : warning C4047: '==' : 'char [9]' differs in levels of indirection from 'const int ' "
si tu as une idée dis moi s'il te plaît...
euh... désolé de demander ça comme ça mais si quelqu'un aurait du temps a accorder mon adresse MSN est dans mon profil
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
arth Messages postés 10414 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
normalement c'est que des warning et ca devrait s'executer mais si ca marche pas met le code que tu as compilé ici
0
magicbisous-nours Messages postés 56 Statut Membre
 
c'est bien des warnings il veut bien me l'exécuter mais le résultat est le même mis à part que la fonction getch ne se lance pas...
0
arth Messages postés 10414 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
je te propose ca :

#include<stdio.h>
#include<conio.h>

main()
{
char nom[10]={0};

printf("Quel est ton nom?\n");
scanf("%s\n",nom);

if((strcmp(nom,'ange'))==0)
{
printf("Je taime mon coeur\n");
}
else if((strcmp(nom,'seb'))==0)
{
printf("Coucou grateur\n");
}

getch();
}

dis moi si ca marche
0
magicbisous-nours Messages postés 56 Statut Membre
 
même résultat que précédemment...
0
arth Messages postés 10414 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
c'est quoi ton compilateur?
0
magicbisous-nours Messages postés 56 Statut Membre
 
visual C++6.0 version anglaise.
J'ai aussi Microsoft Visual Studio.Net 2003 mais je n'étais pas sûr qu'il puisse compiler du C je ne l'ai donc pas installer
0
arth Messages postés 10414 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
bah tu as devc++ francais et qui est tres bien je te conseille de l'essayer et en plus il est grauit
0
arth Messages postés 10414 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
tiens voila un code testé et qui marche :

#include<stdio.h>
#include<conio.h>
#include<string.h>

main()
{
char nom[10]={0};

printf("Quel est ton nom?\n");
scanf("%s",nom);

if((strcmp(nom,"ange"))==0)
{
printf("\nJe taime mon coeur\n");
}
else if((strcmp(nom,"seb"))==0)
{
printf("\nCoucou grateur\n");
}

getch();
}
0
magicbisous-nours Messages postés 56 Statut Membre
 
merci bien!! je verrais dans les cours que j'ai l'explication de al fonction strcmp je crois que je t'ai pris assez de temps comme ça merci encore!!
0