Probleme avec mes "if"...

Résolu
Bonjour,

On dirait que le compiilateur du moins ce qui execute mon programme... ne rentre pas dans mon "if"

Voici un extrait de mon programme :

main()
...

if (fichier != NULL)
{

printf("Voulez vous entrer un angle ?\n");
scanf("%s", Choix1) ;
printf("Choix1 vaut %s", Choix1 ) ;

if (Choix1=="oui"){
printf("Combien pour votre angle en degres ?\n") ;

..

Dans ce ij là...

Pourquoi donc ?

Je suis bloqué là.

Merci pour vous réponses.

4 réponses

  1. Modérateur
    L'opérateur == compare deux pointeurs (la position de tes chaînes de caractères dans la mémoire), en aucun cas ça ne compare la valeur des chaînes de caractères !

    Donc comme les valeurs sont toujours différentes, tu ne rentres jamais dans le if...

    Tu dois utiliser strcmp ou une fonction équivalente :

    if (strcmp(Choix1,"oui")==0) {
        printf("Combien pour votre angle en degres ?\n");
    1. Contributeur sécurité
      Bonjour, on voit pas ou il se ferme comment sont declaree les variables c'est un peu dur de t'aider lol
      1. int main(int argc, char *argv[])
        {

        char Choix1[3], ;
        float Alpha=0 ;

        FILE* fichier = NULL;
        fichier = fopen("test.txt", "w");
        if (fichier != NULL)
        {

        printf("Voulez vous entrer un angle ?\n");
        scanf("%s", Choix1) ;
        printf("Choix1 vaut %s", Choix1 ) ;

        if (Choix1=="oui"){
        printf("Combien pour votre angle en degres ?\n") ;

        }

        }
        }
        1. Contributeur sécurité
          Regarde la reponse de KX ;)
      2. Merci

        ça fonctionne avec strcmp() !

        Super merci à tous les deux!

        Je vais essayer de retenir que l'opérateur == compare 2 pointeurs !

        En tout ça marche. C'est pas beau ça !