亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當程序退出時 stdin 中仍有剩余時,C 和 Go 之間有什么區別

當程序退出時 stdin 中仍有剩余時,C 和 Go 之間有什么區別

Go
慕仙森 2023-03-07 11:42:51
主程序#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 標準庫具有完全相同的行為將需要測試。


查看完整回答
反對 回復 2023-03-07
  • 1 回答
  • 0 關注
  • 83 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號