Instruction Switch incluant toujours le cas et le défaut

Lorsque je comstack ce programme, il affiche à la fois le cas du commutateur correspondant et le contenu de l’étiquette par défaut. La seule valeur pour laquelle il ne s’imprime pas est janvier, toute aide serait formidable!

Exemple d’entrée: 4

Exemple de sortie:

Erreur d’avril

Bien que je puisse améliorer le programme, je dois l’avoir de cette manière.

while (month != EOF) { switch (month) { case 49: month2 = getchar(); switch (month2) { case 10: printf("January \n"); break; case 48: printf("October \n"); break; case 49: printf("November \n"); break; case 50: printf("December \n"); break; } break; case 50: printf("February \n"); break; case 51: printf("March \n"); break; case 52: printf("April \n"); break; case 53: printf("May \n"); break; case 54: printf("June \n"); break; case 55: printf("July \n"); break; case 56: printf("August \n"); break; case 57: printf("Septembe \n"); break; default: printf("Error \n"); } month = getchar(); } system("PAUSE"); return (0); 

}

Vous avez juste besoin d’un étui supplémentaire pour traiter le ‘\ n’ qui vous échappe en appuyant sur Entrée sur votre terminal. Janvier devrait fonctionner si vous tapez juste 1

Edit: En fait, je viens de le tester sous Linux et cela fonctionne parfaitement, il pourrait y avoir quelques différences mineures sous Windows.

 while (month != EOF) { switch (month) { case 49: month2 = getchar(); switch (month2) { case 10: printf("January \n"); break; case 48: printf("October \n"); break; case 49: printf("November \n"); break; case 50: printf("December \n"); break; } break; case 50: printf("February \n"); break; case 51: printf("March \n"); break; case 52: printf("April \n"); break; case 53: printf("May \n"); break; case 54: printf("June \n"); break; case 55: printf("July \n"); break; case 56: printf("August \n"); break; case 57: printf("Septembe \n"); break; // Filter out stray \n case '\n': break; default: printf("Error \n"); } month = getchar(); } system("PAUSE"); return (0);