krd7 Posted October 19, 2009 at 06:16 PM Report Share #292382 Posted October 19, 2009 at 06:16 PM Boa tarde a todos! Venho por este meio colocar uma dúvida que me surgiu ontem ao tentar fazer um trabalho para a escola. Eis que me é pedido o seguinte: " Elabore um programa que lê do standard input um número inteiro ... " . Ora, eu até agora, quando me foi pedido para receber dados do teclado noutros programas, simplesmente usei: import java.util.Scanner;public class Exe1 { public static void main(String[] args) { int num_1; Scanner input = new Scanner (System.in); System.out.println("Insira um número inteiro e de seguida pressione ENTER"); num_1 = input.nextInt(); } } Não tenho é agora a certeza se isto se pode considerar como leitura do standard input ou se tenho que fazer desta forma [ usando Sytem.in.read() ] : int convert_num = 0; int caracter; while ((caracter = System.in.read ()) != '\n') if (caracter >= '0' && caracter <= '9') { convert_num *= 10; convert_num += caracter - '0'; } / ** Neste caso estão mais partes colocadas dado que o que preciso do teclado é receber um número inteiro *problema deste método é quando preciso de receber dez números em separado desoriento-me. */ Portanto a dúvida principal será: ler do standard input, qual dos métodos está correcto (isto se algum deles estiver)? (Peço desculpa por não ter utilizado o GeSHi mas não consegui que funcionasse.) Obrigado desde já. Cumprimentos. Link to comment Share on other sites More sharing options...
IceBrain Posted October 19, 2009 at 10:43 PM Report Share #292449 Posted October 19, 2009 at 10:43 PM Bem, ambos os métodos lêem do standard input, que é simplesmente um canal que é aberto pelo sistema para introduzir dados no programa. No construtor do Scanner é suposto passar-se um objecto de uma classe qualquer que implemente a interface InputStream. Neste caso, estás a passar-lhe o "standard input stream" (System.in), ou seja, o standard input. Portanto, se não houver nenhuma restrição específica quanto à utilização do Scanner (eu tive uns trabalhos em que não podíamos usá-lo), ambas as utilizações estão correctas. ❝The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying.❞- John Carmack on software patents A list of command line apps Link to comment Share on other sites More sharing options...
krd7 Posted October 20, 2009 at 02:59 PM Author Report Share #292538 Posted October 20, 2009 at 02:59 PM Um muito obrigado pelo esclarecimento IceBrain! Link to comment Share on other sites More sharing options...
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