Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de menu language c

12 décembre 2022 à 23:57:42

Bonjour, 

J'ai repris un bout de code et j'essaye de l'arranger a ma manière.

j'essaye de mettre un menu dans un menu mais je comprend pas pour une fois la l'options du deuxième menu entrer, cela m'affiche la deuxieme options du premier menu.

Vocii le code : 

#include <stdio.h>
#include <stdlib.h>

int affichageMenuAcceuil(void)
{
    int choixMenuAcceuil;

    printf("1.Prix\n");
    printf("2.Carton\n");
    printf("3.Commande\n");
    scanf("%d", &choixMenuAcceuil);
    return choixMenuAcceuil;
}

int affichageMenuPrix(void)
{
    int choixMenuPrix;

    printf("4.Grandes bouteilles\n");
    printf("5.Petites bouteilles\n");
    printf("6.Particules de callage\n");
    scanf("%d", &choixMenuPrix);
    return choixMenuPrix;
}


int main(void)
{
    printf("Bienvenue sur le logiciel SortBottle\nQuel est votre choix ?\n\n");

    switch (affichageMenuAcceuil())
    {
    case 1:
        printf("\nVous avez choisis le prix\n\n");

        printf("\nVeuillez choisir une option\n\n");
        scanf(affichageMenuPrix);
        switch (affichageMenuPrix()){
            case 4:
                printf("Grandes bouteilles a ete choisis");
                break;
            case 5:
                printf("Petites bouteilles a ete choisis");
                break;
            case 6:
                printf("Particules de callages");
                break;
            default:
                printf("Vous n'avez pas choisis de bonne option");
                break;
        }

    case 2:
        printf("Vous avez choisis le carton");
        break;
    case 3:
        printf("Vous avez choisis le commande");
        break;
    default:
        printf("Vous n'avez pas choisis de bonne option");
        break;
    }




    return 0;
}



  • Partager sur Facebook
  • Partager sur Twitter
13 décembre 2022 à 0:47:56

Hello,

Il faut lire et corriger les warnings du compilateur (ces messages ne sont pas affichés pour faire joli)

m.c: In function 'main':
m.c:37:15: warning: passing argument 1 of 'scanf' from incompatible pointer type [-Wincompatible-pointer-types]
         scanf(affichageMenuPrix);
               ^~~~~~~~~~~~~~~~~
In file included from m.c:1:0:
c:\mingw\include\stdio.h:667:41: note: expected 'const char *' but argument is of type 'int (*)(void)'
 _CRTIMP __cdecl __MINGW_NOTHROW  int    scanf (const char *, ...);
                                         ^~~~~

Et je te conseille (si ce n'est déjà fait) d'ajouter -Wall -Wextra (pour gcc) comme options de compilation. Un maximum d'avertissements, un minimum de merde lors de l'exécution.

-
Edité par edgarjacobs 13 décembre 2022 à 0:54:50

  • Partager sur Facebook
  • Partager sur Twitter

On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

13 décembre 2022 à 1:06:00

Ce qui me surprend est que tu as deux scanf qui fonctionnent bien et que tu n'as pas vu le troisième ...

Comme l'a dit edgarjacobs: les warning ça ne sert à rien. :)

-
Edité par PierrotLeFou 13 décembre 2022 à 1:07:10

  • Partager sur Facebook
  • Partager sur Twitter

Le Tout est souvent plus grand que la somme de ses parties.

24 janvier 2023 à 1:31:33 - Message modéré pour le motif suivant : Merci de créer votre propre sujet


24 janvier 2023 à 1:40:58

@AbdoulayeDiop71 Bonsoir, merci de ne pas squatter le sujet des autres, créer votre propre sujet dans le respect des règles du forum à savoir qu'un message commence par des règles de politesses (Un bonjour ou des salutations à la communauté et se termine par des remerciements par avances pour les futures réponses), la description de votre problème et le code que vous avez écrit inséré sur le forum à l'aide de l'outil d'intégration de code soit le bouton code </>.

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter