go - thread - system pause en c linux
¿Cómo agregar pausa a un programa Go? (3)
Cuando ejecuto un programa de la Consola Go, solo se ejecuta en un segundo, he estado buscando en Google, el sitio web de Go y Stackoverflow.
import (
"fmt"
)
func main() {
fmt.Println()
}
Se cierra inmediatamente cuando lo ejecuto.
EDIT 2 en realidad quería que el programa permaneciera pausado permanentemente hasta que el usuario presione un botón
La otra manera más fácil con importaciones mínimas usa estas 2 líneas:
var input string
fmt.Scanln(&input)
Al agregar esta línea al final del programa, se pausará la pantalla hasta que el usuario presione la tecla Intro, por ejemplo:
package main
import "fmt"
func main() {
fmt.Println("Press the Enter Key to terminate the console screen!")
var input string
fmt.Scanln(&input)
}
Puede pausar el programa por un tiempo arbitrariamente largo usando time.Sleep()
. Por ejemplo:
package main
import ( "fmt"
"time"
)
func main() {
fmt.Println("Hello world!")
duration := time.Second
time.Sleep(duration)
}
Para aumentar la duración arbitrariamente puedes hacer:
duration := time.Duration(10)*time.Second // Pause for 10 seconds
EDITAR: Dado que el OP agregó restricciones adicionales a la pregunta, la respuesta anterior ya no se ajusta a la factura. Puede hacer una pausa hasta que se presione la tecla Intro creando un nuevo lector de búfer que espera para leer el carácter de nueva línea ( /n
).
package main
import ( "fmt"
"bufio"
"os"
)
func main() {
fmt.Println("Hello world!")
fmt.Print("Press ''Enter'' to continue...")
bufio.NewReader(os.Stdin).ReadBytes(''/n'')
}
package main
import "fmt"
func main() {
fmt.Println("Press the Enter Key to terminate the console screen!")
fmt.Scanln() // wait for Enter Key
}