[問題] sprint格式問題?

看板C_and_CPP作者 (哈哈哈)時間15年前 (2010/05/06 07:57), 編輯推噓0(004)
留言4則, 2人參與, 最新討論串1/1
遇到的問題: (題意請描述清楚) 我用c分別寫了server跟client client摘要如下 int x,y,z; char send_buf[255]; sprintf(send_buf,"%c%c%c",x,y,z); write_msg(serverfd,send_buf); //這function就是把資料傳給server server摘要如下: int xs,ys,zs; char msg_buf[255]; read_msg(clientfd,msg_buf); xs=msg_buf[0]; ys=msg_buf[1]; zs=msg_buf[2]; 程式跑出來的錯誤結果: 我有分別在client 跟server用printf("%d")印出來看 發現一件很奇怪的事情 當client的 y=0時, server的ys一樣是0 (此時xs也跟x一樣) 但是zs一定是52??? 但只要y!=0,那麼就可以得到我想要的結果 xs=x,ys=y, zs=z; 問了同學,他們覺得我在sprintf中用%c很奇怪, 但若我用%d或%x或%s,到了server端直接assign就不是我要的答案了 所以希望大家幫我看看是哪裡有問題<_ _> 開發平台: C , Ubuntu -- 米修~ 米修~ ╰─┬─╮ ★ │ ─┼╮ ╰─ └─╮ 把拔~ 把拔~ │ ╰─╮ ├╯╰┬┴┬╮ ─┬╯ □ 快叫宇宙ㄅㄅ │╮ └───╮ ││┌┴╮ ┴┬┴ │├ ╭┬╮ ▄◥ ㄨㄨ │╰ │││ │╰─┼─╮ ╯│ ├┼┤ 來帶我回去吧 ┴┴╰─┘ │ │ ╰┴╯ over~ ψ soay -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.151.67 ※ 編輯: damy 來自: 140.113.151.67 (05/06 15:59)

05/06 17:01, , 1F
tips:big-endian/little-endian
05/06 17:01, 1F

05/06 17:06, , 2F
在同一台機器上跑也有這個問題嘛?
05/06 17:06, 2F

05/06 17:20, , 3F
yes
05/06 17:20, 3F

05/06 17:21, , 4F
你把二邊buff的東西都列印出來吧...
05/06 17:21, 4F
文章代碼(AID): #1BudPohQ (C_and_CPP)