Lendo Entrada com readline()
Parte da seção Fundamentos do Journey de R da Coddy — lição 29 de 78.
Até agora, você aprendeu como exibir a saída. Agora é hora de tornar seus programas interativos lendo a entrada do usuário. A função readline() permite capturar o que o usuário digita.
name <- readline()
cat("Hello,", name, "\n")Quando este código é executado, o R espera que o usuário digite algo e pressione Enter. O que quer que eles digitem é armazenado na variável name. Se o usuário digitar "Alice", a saída será: Hello, Alice
Uma coisa importante a saber: readline() sempre retorna uma string de caracteres, mesmo que o usuário digite um número. Se alguém inserir "25", ele é armazenado como o texto "25", não o número 25. Você aprenderá como converter entre tipos na próxima lição.
Você pode ler múltiplas entradas usando readline() múltiplas vezes:
first <- readline()
second <- readline()
cat("First:", first, "\n")
cat("Second:", second, "\n")Cada chamada readline() espera por uma linha separada de entrada do usuário.
Quando você precisar juntar strings sem nenhum espaço entre elas, use paste0(). Ao contrário de cat(), que adiciona um espaço entre cada item, paste0() concatena os valores diretamente:
city <- readline()
cat(paste0("Welcome to ", city, "!"), "\n")Aqui, paste0() constrói a string Welcome to Paris! sem espaços indesejados antes do !, e então cat() a imprime.
Desafio
FácilLeia duas linhas de entrada e exiba uma mensagem de saudação personalizada.
Você receberá duas entradas:
- Um primeiro nome
- O nome de uma cidade
Leia ambas as entradas usando readline() e exiba uma mensagem no seguinte formato:
Welcome, [name] from [city]!Use cat() para produzir a saída. Certifique-se de incluir o ponto de exclamação no final e um caractere de nova linha \n.
Por exemplo, se as entradas forem Emma e Paris, a saída deve ser:
Welcome, Emma from Paris!Folha de consulta
Para ler a entrada do usuário, use a função readline():
name <- readline()
cat("Hello,", name, "\n")A função readline() espera que o usuário digite algo e pressione Enter. A entrada é armazenada como uma string de caracteres.
Para ler múltiplas entradas, use readline() várias vezes:
first <- readline()
second <- readline()
cat("First:", first, "\n")
cat("Second:", second, "\n")Nota: readline() sempre retorna uma string de caracteres, mesmo que o usuário digite um número.
Use cat() para imprimir valores separados por espaços. Use paste0() para unir valores sem espaços entre eles:
name <- readline()
cat(paste0("Hello, ", name, "!"))Neste exemplo, paste0() combina "Hello, ", o valor armazenado em name, e "!" em uma única string sem espaços extras.
Experimente você mesmo
# Ler a entrada
con <- file("stdin", "r")
name <- suppressWarnings(readLines(con, n = 1))
city <- suppressWarnings(readLines(con, n = 1))
# TODO: Escreva seu código abaixo para exibir a mensagem de saudação
# Use cat() para a saída: Welcome, [name] from [city]!
# Não se esqueça do caractere de nova linha \n ao finalEsta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Operadores Parte 2
Operadores Lógicos (AND, OR)Operadores Lógicos Parte 2 (NOT)Recapitulação - Lógica SimplesLógica Vetorizada Parte 1Lógica Vetorizada Parte 27Calculadora de Divisão de Conta
Mensagem de Boas-vindasObtendo a Entrada do Usuário10FizzBuzz com um Toque Especial
Visão Geral do JogoA Função FizzBuzz2Variáveis e Tipos de Dados
Tipo de Dado NuméricoTipo de Dado InteiroTipo de Dado CaractereTipo de Dado LógicoVerificando Tipos de DadosConvenções de NomenclaturaValores Ausentes: NARecapitulação - Criação de Variáveis8Laços de Repetição
Laço ForLaço WhileBreakNext (Continue)Recapitulação - FatorialGeração de Sequências (seq, :)Laços AninhadosRecapitulação - Entrada Dinâmica3Operadores Parte 1
Operadores AritméticosDivisão Inteira e MóduloOperadores de AtribuiçãoRecapitulação - Matemática SimplesOperadores de Comparação6IO Básico
Saída com PrintCat para SaídaSaída com VariáveisLendo Entrada com readline()Básico de Conversão de TiposRecapitulação - Calculadora de IdadeRecapitulação - Verdadeiro ou Falso9Funções
Declarando uma FunçãoArgumentos de FunçãoValores de RetornoRecapitulação - Função SigmaRecapitulação - Função de ValidaçãoValores de Parâmetro Padrão