主程序#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
會導致更大的輸入讀?。ㄟM入緩沖區)。
在 Go 中,os.Stdin
沒有緩沖。如果您想獲得與您在 C 程序中看到的相同的結果,您可以將 stdin 包裝在 a 中bufio.Reader
,盡管這是否與您正在使用的任何 C 標準庫具有完全相同的行為將需要測試。
- 1 回答
- 0 關注
- 83 瀏覽
添加回答
舉報
0/150
提交
取消