Erreur en programmation C
Résolu
Jeankowkow
Messages postés
154
Statut
Membre
-
Jeankowkow Messages postés 154 Statut Membre -
Jeankowkow Messages postés 154 Statut Membre -
Bonjour, je me suis mis depuis quelques temps au langage C, et j'ai souvent une erreur dans mes petits programmes (qui ne font pas grand chose de bien, pour l'instant ^^). Voici l'un d'eux :
Programme :
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
printf("\t\t=== MENU ===\n\n");
char choixMenu = 0;
printf("\n1. Royal Cheese\t12.-\n\n2. Mc Deluxe\t13.-\n\n3. Mc Bacon\t10.-\n\n4. Big Mac\t10.-\n\n5. Salade oeuf & poulet\t8.-\n\n6. Je n'ai pas faim !\n");
printf("\n\nVotre choix ? ");
scanf("%ld", &choixMenu);
printf("\n");
if (choixMenu == 1)
printf("Vous avez choisi le Royal Cheese (menu 1)\n\t12.-\n\n\t\tMerci et bon appétit !");
else if (choixMenu == 2)
printf("Vous avez choisi le Mc Deluxe (menu 2)\n\t13.-\n\n\t\tMerci et bon appétit !");
else if (choixMenu == 3)
printf("Vous avez choisi le Mc Bacon (menu 3)\n\t10.-\n\n\t\tMerci et bon appétit !");
else if (choixMenu == 4)
printf("Vous avez choisi le Big Mac (menu 4)\n\t10.-\n\n\t\tMerci et bon appétit !");
else if (choixMenu == 5)
printf("Vous avez choisi la Salade oeuf & poulet (menu 1)\n\t8.-\n\n\t\tMerci et bon appétit !");
else if (choixMenu == 6)
printf("Vous n'avez pas faim.");
else
printf("Vous n'avez pas choisi de menu. Par consequent, vous ne mangerez pas ! Mais c'est quand meme 10.- !");
printf("\n\n\n");
system("PAUSE");
return 0;
}
Problème lors de la compilation :
------ Début de la génération : Projet : Menu, Configuration : Debug Win32 ------
Compilation en cours...
main.c
c:\documents and settings\delessert\mes documents\visual studio 2008\projects\menu\menu\main.c(9) : error C2143: erreur de syntaxe : absence de ';' avant 'type'
c:\documents and settings\delessert\mes documents\visual studio 2008\projects\menu\menu\main.c(15) : error C2065: 'choixMenu' : identificateur non déclaré
c:\documents and settings\delessert\mes documents\visual studio 2008\projects\menu\menu\main.c(19) : error C2065: 'choixMenu' : identificateur non déclaré
c:\documents and settings\delessert\mes documents\visual studio 2008\projects\menu\menu\main.c(22) : error C2065: 'choixMenu' : identificateur non déclaré
c:\documents and settings\delessert\mes documents\visual studio 2008\projects\menu\menu\main.c(25) : error C2065: 'choixMenu' : identificateur non déclaré
c:\documents and settings\delessert\mes documents\visual studio 2008\projects\menu\menu\main.c(28) : error C2065: 'choixMenu' : identificateur non déclaré
c:\documents and settings\delessert\mes documents\visual studio 2008\projects\menu\menu\main.c(31) : error C2065: 'choixMenu' : identificateur non déclaré
c:\documents and settings\delessert\mes documents\visual studio 2008\projects\menu\menu\main.c(34) : error C2065: 'choixMenu' : identificateur non déclaré
Le journal de génération a été enregistré à l'emplacement "file://c:\Documents and Settings\Delessert\Mes documents\Visual Studio 2008\Projects\Menu\Menu\Debug\BuildLog.htm"
Menu - 8 erreur(s), 0 avertissement(s)
========== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========
La faute doit surgire quand je déclare ma variable (char), mais il me semble que j'ai fait juste...
Pour précision, j'utilise Microsoft Visual C++ 2008 Express Edition.
Programme :
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
printf("\t\t=== MENU ===\n\n");
char choixMenu = 0;
printf("\n1. Royal Cheese\t12.-\n\n2. Mc Deluxe\t13.-\n\n3. Mc Bacon\t10.-\n\n4. Big Mac\t10.-\n\n5. Salade oeuf & poulet\t8.-\n\n6. Je n'ai pas faim !\n");
printf("\n\nVotre choix ? ");
scanf("%ld", &choixMenu);
printf("\n");
if (choixMenu == 1)
printf("Vous avez choisi le Royal Cheese (menu 1)\n\t12.-\n\n\t\tMerci et bon appétit !");
else if (choixMenu == 2)
printf("Vous avez choisi le Mc Deluxe (menu 2)\n\t13.-\n\n\t\tMerci et bon appétit !");
else if (choixMenu == 3)
printf("Vous avez choisi le Mc Bacon (menu 3)\n\t10.-\n\n\t\tMerci et bon appétit !");
else if (choixMenu == 4)
printf("Vous avez choisi le Big Mac (menu 4)\n\t10.-\n\n\t\tMerci et bon appétit !");
else if (choixMenu == 5)
printf("Vous avez choisi la Salade oeuf & poulet (menu 1)\n\t8.-\n\n\t\tMerci et bon appétit !");
else if (choixMenu == 6)
printf("Vous n'avez pas faim.");
else
printf("Vous n'avez pas choisi de menu. Par consequent, vous ne mangerez pas ! Mais c'est quand meme 10.- !");
printf("\n\n\n");
system("PAUSE");
return 0;
}
Problème lors de la compilation :
------ Début de la génération : Projet : Menu, Configuration : Debug Win32 ------
Compilation en cours...
main.c
c:\documents and settings\delessert\mes documents\visual studio 2008\projects\menu\menu\main.c(9) : error C2143: erreur de syntaxe : absence de ';' avant 'type'
c:\documents and settings\delessert\mes documents\visual studio 2008\projects\menu\menu\main.c(15) : error C2065: 'choixMenu' : identificateur non déclaré
c:\documents and settings\delessert\mes documents\visual studio 2008\projects\menu\menu\main.c(19) : error C2065: 'choixMenu' : identificateur non déclaré
c:\documents and settings\delessert\mes documents\visual studio 2008\projects\menu\menu\main.c(22) : error C2065: 'choixMenu' : identificateur non déclaré
c:\documents and settings\delessert\mes documents\visual studio 2008\projects\menu\menu\main.c(25) : error C2065: 'choixMenu' : identificateur non déclaré
c:\documents and settings\delessert\mes documents\visual studio 2008\projects\menu\menu\main.c(28) : error C2065: 'choixMenu' : identificateur non déclaré
c:\documents and settings\delessert\mes documents\visual studio 2008\projects\menu\menu\main.c(31) : error C2065: 'choixMenu' : identificateur non déclaré
c:\documents and settings\delessert\mes documents\visual studio 2008\projects\menu\menu\main.c(34) : error C2065: 'choixMenu' : identificateur non déclaré
Le journal de génération a été enregistré à l'emplacement "file://c:\Documents and Settings\Delessert\Mes documents\Visual Studio 2008\Projects\Menu\Menu\Debug\BuildLog.htm"
Menu - 8 erreur(s), 0 avertissement(s)
========== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========
La faute doit surgire quand je déclare ma variable (char), mais il me semble que j'ai fait juste...
Pour précision, j'utilise Microsoft Visual C++ 2008 Express Edition.
A voir également:
- Erreur en programmation C
- Application de programmation - Guide
- Erreur t32 ✓ - Forum Livebox
- Erreur 0x80070643 - Accueil - Windows
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
5 réponses
hello
choixMenu est traité comme un nombre, il faut donc le déclarer:
int choixMenu = 0;
et le lire :
scanf("%d", &choixMenu);
choixMenu est traité comme un nombre, il faut donc le déclarer:
int choixMenu = 0;
et le lire :
scanf("%d", &choixMenu);
non, char défini un caractère, donc les tests devraient être
if (choixMenu == '1')
le caractère, la touche de clavier 1 pas le chiffre 1
%ld lit un entier long, il faut enlever le l pour lire un int
scanf("%d", &choixMenu);
pour lire un caractère defini comme char:
scanf("%c", &choixMenu);
if (choixMenu == '1')
le caractère, la touche de clavier 1 pas le chiffre 1
%ld lit un entier long, il faut enlever le l pour lire un int
scanf("%d", &choixMenu);
pour lire un caractère defini comme char:
scanf("%c", &choixMenu);
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Plutôt que d'utiliser des if else difficiles à suivre, utiliser l'instruction switch:
switch (choixMenu)
{
case 1:
printf("Vous avez choisi le Royal Cheese (menu 1)\n\t12.-\n\n\t\tMerci et bon appétit !");
break;
case 2:
printf("Vous avez choisi le Mc Deluxe (menu 2)\n\t13.-\n\n\t\tMerci et bon appétit !");
break;
case 3:
printf("Vous avez choisi le Mc Bacon (menu 3)\n\t10.-\n\n\t\tMerci et bon appétit !");
break;
case 4:
printf("Vous avez choisi le Big Mac (menu 4)\n\t10.-\n\n\t\tMerci et bon appétit !");
break;
case 5:
printf("Vous avez choisi la Salade oeuf & poulet (menu 1)\n\t8.-\n\n\t\tMerci et bon appétit !");
break;
case 6:
printf("Vous n'avez pas faim.");
break;
default:
printf("Vous n'avez pas choisi de menu. Par consequent, vous ne mangerez pas ! Mais c'est quand meme 10.- !");
}
J'ai mis :
char choixMenu = 0;
scanf("%ld", &choixMenu);