为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
慕村225694 2021-12-20 10:57:13
我运行的是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.goI 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^P2(Notes: only Ctrl + C works here)C:\prj\src\gopl\>如果我在 Ubuntu 中运行此程序,则只能Ctrl + D工作,Ctrl + Z将停止该程序Ctrl + C并将终止它。
查看完整描述

3 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

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


查看完整回答
反对 回复 2021-12-20
?
萧十郎

TA贡献1815条经验 获得超13个赞

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。


查看完整回答
反对 回复 2021-12-20
?
撒科打诨

TA贡献1934条经验 获得超2个赞

对于 Windows,在一个新行上,

<Ctrl+Z><Enter>


查看完整回答
反对 回复 2021-12-20
  • 3 回答
  • 0 关注
  • 341 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号