Golang:如何从终端终止 bufio Scan()?

我运行的是DUP1例如从围棋编程语言的书(如下图所示相关的代码):


for input.Scan() {

    counts[input.Text()]++

}

输入几行文本后,我想终止该Scan()方法。我尝试过 Ctrl+D、Ctrl+Z 和许多其他组合键,但都没有成功。只有 Ctrl+C 有效,但这也会终止程序。


如何在Scan()不退出程序的情况下终止from 终端?


我正在使用 os.Stdin 在 Windows 7 上进行开发。


[编辑]


Ctrl+Z 不起作用:


谢谢。但这对我不起作用:


C:\prj\src\gopl\>go run dup1.go

I have tried all these combinations from the terminal

^Z

^X

^V

^B

^N


^A

^D

^F

^G


^K

^L

^Q

^W

^E

^R

^T

^Y

^U

^O

^P

2(Notes: only Ctrl + C works here)


C:\prj\src\gopl\>

如果我在 Ubuntu 中运行此程序,则只能Ctrl + D工作,Ctrl + Z将停止该程序Ctrl + C并将终止它。


慕村225694
浏览 342回答 3
3回答

BIG阳

没有人问,但我在 OSX 中遇到了这个问题,这是在搜索中出现的。Mac OSX 终端在行首按下 control-D 时识别 EOF。

萧十郎

ctrl + shift + d 如果它是新行中的第一个字符,则会将 EOF 发送到终端。go run main.go> line one> another line> another line> ctrl + shift + d你应该看到输出2 another line如本评论https://stackoverflow.com/a/21658005/1522019 中所述。您可以使用stty all来查找 EOF 组合。我一直在做ctrl + d这件事在我看来是一样的ctrl + D。

撒科打诨

对于 Windows,在一个新行上,<Ctrl+Z><Enter>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go