fmt.Scanf 或 fmt.Scanln 未采用输入

我一直在尝试编写一个程序,该程序接受用户的整数输入并执行一些计算。发生的情况是,每隔一段时间,程序就会在没有任何输入的情况下提前结束。Scanf 和 Scanln 都遵循相同的行为。


相关代码:


func main() {

    var N int

    var output []int

    fmt.Println("Enter test cases")

    //This bottom line executes only every alternate time

    fmt.Scanf("%d", &N)

    testCases(N, N, output)

}

它打印“输入测试用例”行,程序终止。但是当我再次运行该程序时,它会继续执行。每次我尝试运行程序时,这种模式都会重复。


慕的地8271018
浏览 137回答 1
1回答

跃然一笑

更好地使用 bufio 包,它实现了缓冲 I/O。scanf/scanln 没有缓冲。scanner := bufio.NewScanner(os.Stdin)scanner.Scan()input := scanner.Text()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go