• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

krd7

Ler do standard input significa realmente o que?

3 mensagens neste tópico

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.

EDIT: aplicado o Geshi à mensagem (softclean)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora