Probleme avec mes "if"...

Résolu/Fermé
davidmicka23 Messages postés 12 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 5 janvier 2013 - 31 déc. 2012 à 00:46
davidmicka23 Messages postés 12 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 5 janvier 2013 - 31 déc. 2012 à 01:04
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

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
31 déc. 2012 à 00:54
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
yoann090 Messages postés 9180 Date d'inscription mercredi 12 août 2009 Statut Contributeur sécurité Dernière intervention 13 avril 2016 1 687
31 déc. 2012 à 00:50
Bonjour, on voit pas ou il se ferme comment sont declaree les variables c'est un peu dur de t'aider lol
0
davidmicka23 Messages postés 12 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 5 janvier 2013 3
31 déc. 2012 à 00:56
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
yoann090 Messages postés 9180 Date d'inscription mercredi 12 août 2009 Statut Contributeur sécurité Dernière intervention 13 avril 2016 1 687
31 déc. 2012 à 01:01
Regarde la reponse de KX ;)
0
davidmicka23 Messages postés 12 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 5 janvier 2013 3
31 déc. 2012 à 01:04
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