作者查詢 / JJJJoe

總覽項目: 發文 | 留言 | 暱稱
作者 JJJJoe 在 PTT [ C_and_CPP ] 看板的留言(推文), 共21則
限定看板:C_and_CPP
首頁
上一頁
1
下一頁
尾頁
[問題] Socket接收資料處理
[ C_and_CPP ]45 留言, 推噓總分: +19
作者: TampaBayRays - 發表於 2018/11/10 10:08(7年前)
25FJJJJoe: 可以先 line.length() 看看長度多少,如果是 3 的話代表有11/10 13:27
26FJJJJoe: 收到 \011/10 13:27
27FJJJJoe: 還有 Mac OS 預設的換行符是 \r,所以才會有蓋掉第一個字11/10 13:28
28FJJJJoe: 元的情形11/10 13:28
29FJJJJoe: \r 代表的是返回到該行開頭的意思,因此單引號就會回到該11/10 13:49
30FJJJJoe: 行的開頭印出,就蓋掉原本的字元了11/10 13:49
31FJJJJoe: 我建議使用 line=line.substr(0,line.length()-1) 來處理11/10 13:51
32FJJJJoe: 話說回來 每個系統換行符不同,在其他系統 telnet 結果可11/10 13:54
33FJJJJoe: 能會不一樣?11/10 13:55
34FJJJJoe: 你是在substr之後才print的嗎?一般來說不會有這個結果@@11/10 14:27
35FJJJJoe: 所以你一開始說length=3是在line=line.substr(0,n-1)還是11/10 15:11
36FJJJJoe: line=line.substr(0,n)之後?11/10 15:11
37FJJJJoe: 我是指我一開始問的時候,還沒有使用line.length()-111/10 15:15
38FJJJJoe: 我覺得收到的四個字元應該是 ls\r\n 才會有這種情況11/10 15:24
39FJJJJoe: 那我猜的沒錯,line.length()-2 應該就行了11/10 15:29
40FJJJJoe: 順便問一下你目前 clinet 是在哪個系統進行的?11/10 15:30
41FJJJJoe: 我想知道的是你是在哪個作業系統下telnet指令的,我不知道11/10 15:44
42FJJJJoe: 每個作業系統有沒有差別11/10 15:44
43FJJJJoe: echo 的訊息如果有換行,就表示有印出\r\n11/10 15:44
44FJJJJoe: 喔喔 看來每個系統的telnet在訊息結尾都會加上\r\n11/10 15:47
45FJJJJoe: 學到一課了XD11/10 15:47
首頁
上一頁
1
下一頁
尾頁