Controle saisie
azerty1705
Messages postés
11
Date d'inscription
Statut
Membre
Dernière intervention
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour;
J'ai un problème lorsque que je tape une lettre le programme plante et j'aimerais qu'il me marque qu'il y a une erreur au lieux de planter et je ne sait pas du tous comment faire
merci d'avance;
J'ai un problème lorsque que je tape une lettre le programme plante et j'aimerais qu'il me marque qu'il y a une erreur au lieux de planter et je ne sait pas du tous comment faire
merci d'avance;
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include "ModeAssisterFR.h"
#include "ModeAssisterEN.h"
#include "ExpertMode.h"
#include "ExpertModeEN.h"
int main(void)
{
system("clear");
int c;
int a;
int b;
printf(" ---------------------------------------------------------------\n");
printf(" | |\n");
printf(" | BIENVENUE / WELCOME :) |\n");
printf(" | EXIA_SHELL_2.0 |\n");
printf(" | |\n");
printf(" ---------------------------------------------------------------\n");
do {
//Choix langage
printf("\n\033[32mMenu langage / language menu\033[00m\n");
printf ("\n1) Francais taper 1\n");
printf ("2) English type 2\n");
printf ("3) Quitter / exit \n");
printf ("Votre choix : ");
scanf ("%i", &c);
if (c <= 0 || c >= 4)
{
system("clear");
printf ("\n\033[31mLa saisie est invalide.\n\n\033[34mRecommencer! / Try again!\033[00m\n");
}
}
while (c <= 0 || c >= 4);
//Verification choix
if(c == 1)//1ere option francais
//Choix langue Française
//Choix mode
{
printf("\n Votre choix de langue est le Francais\n");
while(a <= 0 || a >=4)
{
printf("\n\033[32mChoix du mode\033[0m\n");
printf("\n1) Mode expert taper 1\n");
printf("2) Mode assister taper 2\n");
printf("3) Mode langage naturel taper 3\n");
printf("\nVotre choix : ");
scanf ("%i", &a);
//rentrer choix
if (a <= 0 || a >= 4)
{
system("clear");
printf("\n\033[31mLa saisie est invalide.\n\n\033[34mRecommencer!\033[00m\n");
}
if (a == 1)
{
printf("\n \033[32mVous avez choisis le mode expert\033[0m\n");
system("clear");
Expert();
}
else if(a == 2)
{
printf("\n \033[32mVous avez choisis le mode assister\033[0m\n");
system("clear");
ChoixFamilleFR();
}
else if(a == 3)
{
printf("\n \033[32mVous avez choisis le mode language naturel\033[0m\n");
}
}
}
if(c == 2)//2eme option anglais
{
//choix langue anglais
//choix mode
printf("\n Your language choice is English\n");
while(b <= 0 || b >=4)
{
printf("\n\033[32mChoice mode\033[0m\n");
printf("\n1) Expert Mode type 1\n");
printf("2) Assisted mode type 2\n");
printf("3) Natural language type 3\n");
printf("\nYour choice : ");
scanf ("%i", &b);
//rentrer choix
if (b <= 0 || b >= 4)
{
printf("\n\033[31mThe entry is invalid.\n\n\033[34mTry again!\033[00m\n");
}
if (b == 1)
{
printf("\n \033[32mYour choice mode is expert\033[0m\n");
system("clear");
ExpertEN();
}
else if(b == 2)
{
printf("\n \033[32mYour choice mode is assisted\033[0m\n");
system("clear");
ChoixFamilleEN();
}
else if(b == 3)
{
printf("\n \033[32mYour choice mode is natural language\033[0m\n");
}
}
}
if(c == 3) //3eme option quitter
{
system("clear");
printf("Programme fermer / Programme close\n");
}
}
A voir également:
- Controle saisie
- Saisie gestuelle iphone - Guide
- Saisie vocale whatsapp - Accueil - Messagerie instantanée
- Saisie vocale sms - Guide
- Gboard saisie vocale - Accueil - Applications & Logiciels
- Fan controle - Télécharger - Optimisation
2 réponses
Je peut me tromper mais il me semble que tu ne peut pas comparer directement la valeur du caratere avec 4 ou une lettre h par exemple. Il faut comparer sauf erreur les valeurs des carateres en ASCII.
Bonjour,
Si tu veux éviter que ton programme plante, il faut rendre ton programme plus robuste. Donc commencer par éviter les scanf(), etc. Bref, ça demande un certain niveau... Mais déjà, il faudrait plutôt revoir la structure de ton programme pour l'optimiser et le rendre plus agréable à lire (notamment via l'ajout de fonctions).
Quelques erreurs :
while(a <= 0 || a >=4)
{
Attention, ta variable n'est pas initialisée au moment où tu l'utilises...
De même pour ta variable b.
Et il manque le return 0; final.
Pour le reste, dis-nous à quel moment ton programme plante au moins.
Si tu veux éviter que ton programme plante, il faut rendre ton programme plus robuste. Donc commencer par éviter les scanf(), etc. Bref, ça demande un certain niveau... Mais déjà, il faudrait plutôt revoir la structure de ton programme pour l'optimiser et le rendre plus agréable à lire (notamment via l'ajout de fonctions).
Quelques erreurs :
while(a <= 0 || a >=4)
{
Attention, ta variable n'est pas initialisée au moment où tu l'utilises...
De même pour ta variable b.
Et il manque le return 0; final.
Pour le reste, dis-nous à quel moment ton programme plante au moins.