Avatar ·

Como ler dados da entrada padrão (stdin) em um aplicativo de console em Go?

Olá a todos! Comecei a estudar Go e estou escrevendo um utilitário de console simples. Preciso que o programa peça ao usuário o nome e a idade e, em seguida, exiba uma saudação. Mas não consigo entender como ler corretamente a string que o usuário digita no terminal. Tentei usar `fmt.Scan()`, mas parece que ele lê apenas até o primeiro espaço. Se eu digitar "Ivan Petrov", ele lê apenas "Ivan". E se eu precisar ler uma string inteira com espaços? Ou um número? Aqui está meu código atual, que não funciona como deveria: ```go package main import "fmt" func main() { var name string var age int fmt.Print("Digite o nome: ") fmt.Scan(&name) // Problema: lê apenas até o espaço fmt.Print("Digite a idade: ") fmt.Scan(&age) fmt.Printf("Olá, %s! Você tem %d anos.\n", name, age) } ``` Se eu digitar "Anna 25", o programa termina imediatamente, sem esperar a segunda entrada, e exibe algo estranho. Como ler strings corretamente, o que