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. 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 !
    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. 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