Probleme avec mes "if"...

Résolu
davidmicka23 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -  
davidmicka23 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -
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. KX Messages postés 19031 Statut Modérateur 3 020
     
    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
  2. yoann090 Messages postés 10597 Statut Contributeur sécurité 1 697
     
    Bonjour, on voit pas ou il se ferme comment sont declaree les variables c'est un peu dur de t'aider lol
    0
  3. davidmicka23 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   3
     
    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") ;

    }

    }
    }
    0
    1. yoann090 Messages postés 10597 Statut Contributeur sécurité 1 697
       
      Regarde la reponse de KX ;)
      0
  4. davidmicka23 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   3
     
    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 !
    0