Lettura da tastiera

mercoledì 04 giugno 2003 - 12.54

pedro Profilo | Newbie

Ciao
ho dei problemi con la lettura da tastiera per il fatto che nel seguente listato
non mi fa introdurre e quindi leggere da tastiera nulla.Come faccio?




using System;
class forme {
public static void Main(){
char scelta;
double lato = 0.0 ,altezza = 0.0;


Console.WriteLine("1: Area Triangoli");
Console.WriteLine("2: Esci");
scelta = (char) Console.Read();

switch (scelta){
case '1' :

Console.WriteLine("Introduci lato");

lato = Console.In.Read();
Console.WriteLine("Introduci altezza");
altezza = Console.Read();
triangolo tria = new triangolo(lato,altezza);
tria.dati();
Console.WriteLine("Area :" + tria.area());
break;

case '2' :
break;

}




}
}

Brainkiller Profilo | Guru

Ciao Pedro,
ti consiglio di non utilizzare la Read così semplice e ti spiego subito il perchè.
E' meglio se utilizzo un overload della Read oppure la Readline direttamente.
In questo caso se facevi un po' di debug ti potevi accorgere del problema.
Nella prima Read quando richiedi all'utente la scelta del menù tu digiti 1 per esempio e premi invio.
Beh l'invio equivale alla sequenza \r\n e quindi sono due caratteri ben precisi (in ASCII 10 e 13).
Quindi le due chiamate alla Read successive vengono eseguite correttamente infatti lato e altezza se guardi contengono proprio 10 e 13.
Non so se mi sono spiegato bene.

Ti conviene quindi usare la ReadLine e poi dalla stringa risultante eliminare eventualmente se presenti spazi, ritorni a capo (\r) e new line (\n) e convertire in double il numero.

Ciao
Fammi sapere.

David De Giacomi

pedro Profilo | Newbie

Grazie
mi è bastato utilizzare la readline come mi hai detto ed è andato tutto a
posto!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5