[問題] RS232輸入字串

看板C_and_CPP作者 (HaHaHa~~~)時間12年前 (2011/12/05 10:47), 編輯推噓0(0010)
留言10則, 2人參與, 最新討論串1/3 (看更多)
如題,最近實驗碰到的問題,但是又有byte數的限制 例如,它規定輸入的command數為5bytes,16進位 指令類似於5258010100,其中 52 58 01 01 00,兩個數字為1byte,這樣要怎麼定義? char[5]="5258010100"---->char[5]不夠裝啊 char* str="5258010100"---->沒辦法確定command是5bytes啊, 因為整個字串是command+data 其它用int,string等等,都沒辦法保證5bytes吧? 請問我該怎麼宣告這個字串變數呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.251.182.250

12/05 11:02, , 1F
char[5]={0x52,0x58,0x01,0x01,0x00};
12/05 11:02, 1F

12/05 11:14, , 2F
如果指令是給user輸入的呢?
12/05 11:14, 2F

12/05 12:19, , 3F
那就一次讀兩個字元然後轉16進位?
12/05 12:19, 3F

12/05 12:21, , 4F
像是scanf("%2x%2x%2x%2x%2x",...)
12/05 12:21, 4F

12/05 13:22, , 5F
那如果是string s="5258010100",char[]又要怎麼接收呢?
12/05 13:22, 5F

12/05 13:23, , 6F
用substr(),接下來??
12/05 13:23, 6F

12/05 13:47, , 7F
懶人做法sscanf(s.c_str(),"%2x..........);
12/05 13:47, 7F

12/05 21:33, , 8F
看了C++網站,還是不會@@可以跟我說C++的寫法嗎??
12/05 21:33, 8F

12/05 22:55, , 9F

12/06 23:03, , 10F
謝謝,成功了
12/06 23:03, 10F
文章代碼(AID): #1Et331_V (C_and_CPP)
文章代碼(AID): #1Et331_V (C_and_CPP)