aMeScAS Posted November 10, 2006 at 12:22 AM Report #63280 Posted November 10, 2006 at 12:22 AM Perante este codigo: Console::WriteLine("Introduza o Nome: "); Nome=Console::ReadLine(); Console::WriteLine("Introduza o Ano: "); Ano=Byte::Parse(Console::ReadLine()); Console::WriteLine("Introduza a Turma: "); Turma=Char::Parse(Console::ReadLine()); Console::WriteLine("Introduza 6 notas: "); for (Byte i=0; i<6;i++) Notas[i]=Byte::Parse(Console::ReadLine()); Console::Clear(); Menu(); Gostava de saber como mostrar ao utilizador mensagem de erro, quando este introduz uma letra no ciclo For (que esta definido como Byte), e que mostre erro quando ao introduzir uma letra no "Ano", pois deverá aparecer numeros e nao letras.. Nao sei se me estou a fazer entender... :dontgetit:
brink@ero Posted November 11, 2006 at 01:05 AM Report #63502 Posted November 11, 2006 at 01:05 AM Sinceramente não estou a verificar nenhuma função dedicada para isso. Mas sempre podes criar uma, recebes tudo como um array de char e depois fazes isto: bool ischar(char c) { if( '0'<=c && c<='9') return true; if( 'a'<=c && c<='z') return true; if( 'A'<=c && c<='Z') return true; return false; } Depois fazes semelhante para os números e os bytes. Cumpr. bk@ero 😛
TheDark Posted November 11, 2006 at 04:03 AM Report #63524 Posted November 11, 2006 at 04:03 AM Utiliza excepções. http://msdn2.microsoft.com/en-us/library/k0s9b1y3.aspx bool valido=false; while (!valido) { try { Ano=Byte::Parse(Console::ReadLine()); valido=true; } catch (FormatException exc) { Console::WriteLine("Número inválido"); } } Algo assim... não testei. EDIT: Testado e funcional. Assim fica mais... bonito: bool valido=false; while (!valido) { Console::WriteLine("Introduza o Ano: "); try { Ano=Byte::Parse(Console::ReadLine()); valido=true; } catch (FormatException ^exc) { Console::Write("Ano inválido: "); Console::WriteLine(exc->Message); } } Desaparecido.
aMeScAS Posted November 12, 2006 at 01:25 AM Author Report #63719 Posted November 12, 2006 at 01:25 AM hmm... brigadao!! ... mas e para o array? komo meto?... Console::WriteLine("Introduza 6 notas: "); for (Byte i=0; i<6;i++) Notas[i]=Byte::Parse(Console::ReadLine()); Ja exprimentei uma quantas maneiras, mas nao estou a conseguir... :down:
TheDark Posted November 12, 2006 at 02:15 AM Report #63735 Posted November 12, 2006 at 02:15 AM Mais uma vez, sem testar (mas deve funcionar) : Console::WriteLine("Introduza 6 notas: "); for (Byte i=0; i<6;i++) { valido=false; while (!valido) { try { Notas[i]=Byte::Parse(Console::ReadLine()); valido=true; } catch (FormatException ^exc) { Console::Write("Nota inválida: "); Console::WriteLine(exc->Message); } } } Desaparecido.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now