主程序#include <stdio.h>int main() { int k; scanf("%d", &k); return 0;}主程序package mainimport "fmt"func main() { var n int fmt.Scan(&n)}root@82da6559c1c0:/code# go run main.go 123x123root@82da6559c1c0:/code# 123bash: 123: command not foundroot@82da6559c1c0:/code# gcc main.c -o mainroot@82da6559c1c0:/code# ./main123x123root@82da6559c1c0:/code# 我想知道为什么在 Golang 中,123被插入到我的 bash 命令中。但在 C 中它没有?有什么不同吗?(我知道标准输入中还有一些字符)我想知道如何让 Golang 表现得像 C 一样?
1 回答
慕少森
TA贡献2019条经验 获得超9个赞
默认情况下,stdin
在 C 中缓冲,因此您scanf
会导致更大的输入读取(进入缓冲区)。
在 Go 中,os.Stdin
没有缓冲。如果您想获得与您在 C 程序中看到的相同的结果,您可以将 stdin 包装在 a 中bufio.Reader
,尽管这是否与您正在使用的任何 C 标准库具有完全相同的行为将需要测试。
- 1 回答
- 0 关注
- 64 浏览
添加回答
举报
0/150
提交
取消