[問題] sprint格式問題?
遇到的問題: (題意請描述清楚)
我用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
05/06 17:01, 1F
→
05/06 17:06, , 2F
05/06 17:06, 2F
→
05/06 17:20, , 3F
05/06 17:20, 3F
→
05/06 17:21, , 4F
05/06 17:21, 4F