Avatar ·

Cómo leer datos de la entrada estándar (stdin) en una aplicación de consola en Go

¡Hola a todos! Acabo de empezar a aprender Go y estoy escribiendo una utilidad de consola simple. Necesito que el programa solicite al usuario el nombre y la edad, y luego muestre un saludo. Pero no puedo entender cómo leer correctamente la línea que el usuario ingresa en la terminal. Intenté usar `fmt.Scan()`, pero parece que solo lee hasta el primer espacio. Si ingreso "Iván Petrov", solo se lee "Iván". ¿Y si necesito leer una línea completa con espacios? ¿O un número? Aquí está mi código actual, que no funciona como debería: ```go package main import "fmt" func main() { var name string var age int fmt.Print("Ingrese el nombre: ") fmt.Scan(&name) // Problema: solo lee hasta el espacio fmt.Print("Ingrese la edad: ") fmt.Scan(&age) fmt.Printf("¡Hola, %s! Tienes %d años.\n", name, age) } ``` Si ingreso "Ana 25", el programa termina inmediatamente sin esperar la segunda entrada, y muestra algo extraño. ¿Cómo leer correctamente líneas, qu