De retour avec une autre question de débutant. En travaillant sur une fonction pour mon projet de devoirs, j'ai découvert que mon menu ne se fermerait pas lorsque j'appuierais sur X, cela a fonctionné il y a juste une heure et je n'ai rien changé dans main(). J'ai commenté tout le code dans mes fonctions juste pour être sûr que rien dans une fonction n'interfère. Je ne trouve tout simplement pas de problème et je serais reconnaissant pour toute aide.do-while a cessé de fonctionner
int main()
{
char val, enter;
int c;
/* loopa med do-while */
do
{
printf("===============================\n");
printf(" Olja i Norge AB\n");
printf("===============================\n\n");
printf(" Artikelregister\n");
printf(" A. Lista artiklar\n");
printf(" B. L\x84gg till artikel\n");
printf(" C. Radera artikel\n");
printf(" D. \x8Endra artikel\n\n");
printf(" Kundregister\n");
printf(" E. Lista kunder\n");
printf(" F. L\x84gg till kund\n");
printf(" G. Radera kund\n");
printf(" H. \x8Endra kund\n\n");
printf(" Ordrar\n");
printf(" I. Best\x84ll\n");
printf(" J. Lista ordrar\n\n");
printf(" X. Avsluta\n");
printf("\n===============================");
printf("\n===============================\n");
printf("V\x84lj: ");
scanf("%c", &val);
do {
c = getchar();
} while (c != EOF && c != '\n');
switch(val)
{
case 'A':
case 'a':
printf("\n");
artList();
break;
case 'B':
case 'b':
printf("\n");
artAdd();
break;
case 'C':
case 'c':
artDel();
break;
case 'D':
case 'd':
artEdit();
break;
case 'E':
case 'e':
kundList();
break;
case 'F':
case 'f':
kundAdd();
break;
case 'G':
case 'g':
kundDel();
break;
case 'H':
case 'h':
kundEdit();
break;
case 'I':
case 'i':
order();
break;
case 'J':
case 'j':
orderList();
break;
case 'X':
case 'x':
break;
}
printf("\nTryck <ENTER> f\x94r att forts\x84tta.");
scanf("%c", &enter);
system("cls");
}while(val != 'X' || val != 'x');
return 0;
}
Indice: au lieu de vérifier 'X' et 'x', utilisez les fonctions "tolower" ou "toupper" et comparez seulement une fois. Par exemple, après avoir lu dans votre personnage, convertissez-le en majuscules ou minuscules, puis comparez. Cela réduira la frustration et la taille de votre programme. ;-) –
@Thomas: êtes-vous sûr que c'est une bonne règle? http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=415417 –