Saisi de nombre entier dans une application console !!! [Résolu]

Signaler
Messages postés
778
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
27 novembre 2008
-
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
-
Bonjour a tous,

J'ai un menu sous une application console , l'utilisateur saisi soit
0,1,2,3 ...
et suivant ce nombre je fais un swtich et je lui envoit la methode associe !

ca tourne sauf que si je rentre un string par exemple ca ne tourne plus il plante ...

Donc comment faire pour que ce soft ne plante plus lors de la saisie de chaine et non d'entier ! si quelqu'un avait un exemple ...merci !!!!!


AccountingMenu();



string choix = Console.ReadLine();



int chx = Convert.ToInt32(choix);



switch(chx)


{



case 0 :


Console.WriteLine("Quit the application "+ chx);



break;



case 1 :


Console.WriteLine("You push to "+chx);



break;



case 2 :


Console.WriteLine("You push to "+chx);



break;



case 3 :


Console.WriteLine("You push to "+chx);



break;



default :


Console.WriteLine("Invalide selection, please try again..");



break;

Bonne journée
Christophe

4 réponses

Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
49
Pourquoi ne pas declarer chx en tant que string, et de faire des
case "0":
case "1".

Tu n'aurais plus aucune probleme de conversion

Si tu veux conserver le passage par un entier, tu fais un try/catch et tu geres l'excpetion levée par la saisie d'un string non numérique


Mx
MVP C#
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
38
Salut, habituellement une saisie en mode console se fait dans un do while :

int c = -1;


do
{
Console.Write( "Entrez un choix (0/3): " );
c = Console.Read( );
Console.ReadLine( ); // Flush
}
while ( c < 48 || c > 51 );


c = c - 48;

// Ici ton switch..
Messages postés
778
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
27 novembre 2008

salut salut,

Je vous remercie pour vos idées

Derniere chose comment faire pour mettre l'ecran a blanc en mode console !

j'ai essaye

Console.Writeln("\f");

trouve dans de la doc sur internet mais cela ne tourne pas !!!!
ca m'affiche un caractere speciale !!!!

Merci
Christophe
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
38
Effacer la console !?

Si tu travailles beaucoup avec la console tu devrais utiliser le framework 2.0, la classe Console y est bien plus complète, y'a notamment la méthode Clear.. Sinon avec le framework 1.1 je pense que c'est possible uniquement avec l'API Win32.

Regarde le 2ème exemple:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/clearing_the_screen.asp