第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

使用 Fprintf 時發(fā)送的字節(jié)數(shù)差異

使用 Fprintf 時發(fā)送的字節(jié)數(shù)差異

Go
湖上湖 2023-07-31 16:55:37
要求:我想得到“4 個字節(jié)已發(fā)送” - 當(dāng)我發(fā)送以下十六進(jìn)制消息時 - 我看到它們適用于一個十六進(jìn)制消息,但在發(fā)送時進(jìn)行微小更改時不適用于另一個十六進(jìn)制消息下面的代碼更好地解釋了我的問題 - 首先是按預(yù)期發(fā)送了 4 個字節(jié)的工作十六進(jìn)制,第二個是發(fā)送額外字節(jié)的另一個十六進(jìn)制消息 - 我也需要找出一種方法來為第二個十六進(jìn)制發(fā)送 4 個字節(jié)工作六角形:import (    "fmt"    "os"    "encoding/hex")func main() {    hexString, _ := hex.DecodeString("4214722e")    n, err := fmt.Fprintf(os.Stdout, string(hexString))    // The n and err return values from Fprintf are    // those returned by the underlying io.Writer.    if err != nil {        fmt.Fprintf(os.Stderr, "Fprintf: %v\n", err)    }    fmt.Printf("\n%d bytes written.\n", n)    fmt.Println([]byte(hexString))    fmt.Println(hex.Dump(hexString))}產(chǎn)生以下輸出:4 bytes written.[66 20 114 46]00000000  42 14 72 2e                                       |B.r.|無法使用十六進(jìn)制 - 僅更改了一個值:(這里需要 4 個字節(jié),但我得到了 13)https://play.golang.org/p/UNLsLdLk6g0import (    "fmt"    "os"    "encoding/hex")func main() {    hexString, _ := hex.DecodeString("42147225")    n, err := fmt.Fprintf(os.Stdout, string(hexString))    // The n and err return values from Fprintf are    // those returned by the underlying io.Writer.    if err != nil {        fmt.Fprintf(os.Stderr, "Fprintf: %v\n", err)    }    fmt.Printf("\n%d bytes written.\n", n)    fmt.Println([]byte(hexString))    fmt.Println(hex.Dump(hexString))}產(chǎn)生以下輸出,這不是預(yù)期的,即使打印時的字節(jié)看起來是 413 bytes written.[66 20 114 37]00000000  42 14 72 25                                       |B.r%|在第二個示例中需要發(fā)送 4 個字節(jié) - 請幫我解決同樣的問題注意:為什么我在這里使用 Fprintf ?我需要通過 TCP 套接字發(fā)送此消息,但對于上面的示例 - 我發(fā)送相同的十六進(jìn)制消息,但發(fā)送到標(biāo)準(zhǔn)輸出,以便我們輕松查看此消息。只要該解決方案可用于向套接字發(fā)送信息 - 我真的不在乎它是 Fprintf 還是其他東西
查看完整描述

1 回答

?
哈士奇WWW

TA貢獻(xiàn)1799條經(jīng)驗 獲得超6個贊

如果您查看打印的字符串,您可以看到問題:

Br%!(NOVERB)

在這里,當(dāng)最后一個字節(jié)是 0x25(即“%”)時,F(xiàn)printf 嘗試從輸入中讀取下一個格式化動詞,但該動詞不存在,因此它打印出錯誤消息!(NOVERB)。那是你的額外字節(jié)。使用 FPrint 代替 Fprintf,它應(yīng)該打印 4 個字節(jié)。


查看完整回答
反對 回復(fù) 2023-07-31
  • 1 回答
  • 0 關(guān)注
  • 137 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號