主程序#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 中它沒有?有什么不同嗎?(我知道標(biāo)準(zhǔn)輸入中還有一些字符)我想知道如何讓 Golang 表現(xiàn)得像 C 一樣?
1 回答

慕少森
TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊
默認(rèn)情況下,stdin
在 C 中緩沖,因此您scanf
會(huì)導(dǎo)致更大的輸入讀?。ㄟM(jìn)入緩沖區(qū))。
在 Go 中,os.Stdin
沒有緩沖。如果您想獲得與您在 C 程序中看到的相同的結(jié)果,您可以將 stdin 包裝在 a 中bufio.Reader
,盡管這是否與您正在使用的任何 C 標(biāo)準(zhǔn)庫具有完全相同的行為將需要測(cè)試。
- 1 回答
- 0 關(guān)注
- 90 瀏覽
添加回答
舉報(bào)
0/150
提交
取消