英文:
How do I make a GO program wait until there is user input?
问题
如何使程序等待,直到用户输入数据?
要实现这个功能,你可以使用bufio
包中的Scanner
类型的Scan()
方法。这个方法会阻塞程序的执行,直到用户输入数据并按下回车键。
下面是修改后的代码:
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
fmt.Println("请输入 y 的值:")
input := bufio.NewScanner(os.Stdin)
input.Scan() // 程序会在这里等待用户输入
fmt.Println("你输入的值是:", input.Text())
}
这样,当程序执行到input.Scan()
这一行时,它会等待用户输入数据。用户输入数据后,程序会继续执行,并将用户输入的值打印出来。
英文:
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
fmt.Println("insert y value here: ")
input := bufio.NewScanner(os.Stdin)
fmt.Println(input.Text)
}
How do I make the program wait, until the user inputs data?
答案1
得分: 11
Scanner并不是读取命令行输入的理想工具(参见HectorJ上面引用的答案),但如果你想让它工作,你需要调用Scan()方法(还要注意Text()是一个方法调用):
func main() {
fmt.Print("在这里插入y的值:")
input := bufio.NewScanner(os.Stdin)
input.Scan()
fmt.Println(input.Text())
}
英文:
Scanner isn't really ideal for reading command line input (see the answer HectorJ referenced above), but if you want to make it work, it's a call to Scan() that you're missing (also note that Text() is a method call):
func main() {
fmt.Print("insert y value here: ")
input := bufio.NewScanner(os.Stdin)
input.Scan()
fmt.Println(input.Text())
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论