从标准输入读取整数
如何使用 Go 中的 fmt.Scanf
函数从标准输入获取整数输入?
如果使用 fmt.Scanf
无法完成此操作,那么读取单个整数的最佳方法是什么?
How do I use the fmt.Scanf
function in Go to get an integer input from the standard input?
If this can't be done using fmt.Scanf
, what's the best way to read a single integer?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
http://golang.org/pkg/fmt/#Scanf
Go 中包含的所有库有据可查。
话虽这么说,我相信
可以解决这个问题
http://golang.org/pkg/fmt/#Scanf
All the included libraries in Go are well documented.
That being said, I believe
does the trick
另一种更简洁的替代方法是仅使用 fmt.Scan:
这使用参数类型的反射来发现应如何解析输入。
http://golang.org/pkg/fmt/#Scan
An alternative that can be a bit more concise is to just use
fmt.Scan
:This uses reflection on the type of the argument to discover how the input should be parsed.
http://golang.org/pkg/fmt/#Scan
这是我读取正整数的“快速 IO”方法。它可以通过位移和提前布局内存来改进。
Here is my "Fast IO" method for reading positive integers. It could be improved with bitshifts and laying out memory in advance.
Golang fmt.Scan 比 Golang fmt.Scanf 更简单(比 Clang scanf 更简单)
如果 fmt.Scan 错误,即如果不是 nil,则 log & return
1 读取单个变量:
2 读取多个变量:
祝你好运
示例来自: http ://www.sortedinf.com/?q=golang-in-1-hour
Golang fmt.Scan is simpler than Golang fmt.Scanf (which is simpler than Clang scanf)
If fmt.Scan errors i.e. if not nil, log & return
1 Read single variable:
2 Read multiple variables:
Best of luck
Example from: http://www.sortedinf.com/?q=golang-in-1-hour
您可以将
fmt.Scanf
与格式说明符一起使用。整数的格式说明符是 %d。因此您可以使用如下所示的标准输入。否则您可以使用
fmt.Scan
或fmt.Scanln
,如下所示。You can use
fmt.Scanf
with a format specifier. The format specifier for the integer is %d. So you can use standard input like below.or else you can use
fmt.Scan
orfmt.Scanln
as below.您还可以使用 bufio.NewReader 从标准输入读取整数。
以下程序:
提示输入整数
创建 bufio.Reader 以从标准输入读取
读取输入直到遇到换行符
'\n'
(请注意,这只会读取单个整数。空格分隔的值将不工作)删除换行符字符
将字符串转换为int
You could also use
bufio.NewReader
to read an integer from the standard input.The below program:
Prompts for an integer input
Creates a bufio.Reader to read from standard input
Reads input till it encounters a newline character
'\n'
(Note that this will only read a single integer. Space separated values will not work)Removes the newline character
Converts string to int
为什么我们不能只使用 scanf ?就像我们在 C 中使用的那样?但它正在发挥作用。
Why can't we just use a scanf? just like we use in C? it's working though.