snippetgoCritical
How can I read from standard input in the console?
Viewed 0 times
inputhowfromconsolestandardthecanread
Problem
I would like to read standard input from the command line, but my attempts have ended with the program exiting before I'm prompted for input. I'm looking for the equivalent of Console.ReadLine() in C#.
This is what I currently have:
This is what I currently have:
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter text: ")
text, _ := reader.ReadString('\n')
fmt.Println(text)
fmt.Println("Enter text: ")
text2 := ""
fmt.Scanln(text2)
fmt.Println(text2)
ln := ""
fmt.Sscanln("%v", ln)
fmt.Println(ln)
}Solution
I'm not sure what's wrong with the block
As it works on my machine. However, for the next block you need a pointer to the variables you're assigning the input to. Try replacing
If this still doesn't work, your culprit might be some weird system settings or a buggy IDE.
reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter text: ")
text, _ := reader.ReadString('\n')
fmt.Println(text)As it works on my machine. However, for the next block you need a pointer to the variables you're assigning the input to. Try replacing
fmt.Scanln(text2) with fmt.Scanln(&text2). Don't use Sscanln, because it parses a string already in memory instead of from stdin. If you want to do something like what you were trying to do, replace it with fmt.Scanf("%s", &ln)If this still doesn't work, your culprit might be some weird system settings or a buggy IDE.
Code Snippets
reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter text: ")
text, _ := reader.ReadString('\n')
fmt.Println(text)Context
Stack Overflow Q#20895552, score: 435
Revisions (0)
No revisions yet.