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??

13 réponses

  1. arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   1 296
     
    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
  2. magicbisous-nours Messages postés 56 Statut Membre
     
    ok merci beaucoup!!
    0
  3. arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   1 296
     
    de rien si ca a pu t'aider c'est le principal
    0
  4. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   1 296
     
    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
  7. 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
  8. arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   1 296
     
    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
  9. magicbisous-nours Messages postés 56 Statut Membre
     
    même résultat que précédemment...
    0
  10. arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   1 296
     
    c'est quoi ton compilateur?
    0
  11. 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
  12. arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   1 296
     
    bah tu as devc++ francais et qui est tres bien je te conseille de l'essayer et en plus il est grauit
    0
  13. arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   1 296
     
    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
  14. 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