作者clv (慢慢習慣成為大叔)
看板C_and_CPP
標題[問題] C的結構問題
時間Sat Jan 7 11:54:12 2017
開發平台(Platform): (Ex: Win10, Linux, ...)
C語言
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
請問一下, 我有一個結構長這樣
typedef struct
{
int int_a;
}TEST2;
typedef struct
{
char char_a;
char char_b;
char char_c;
char char_d;
int int_a;
TEST2 s_a;
}TEST;
有一個對應的純文字字串, 內容如下
1,2,3,4,5,6
我想自動的把字串的第一個字對應到結構的第一個
也就是
char_a=1
char_b=2
char_c=3
char_d=4
int_a=5
s_a.int_a=6
我是希望當我改變struct時,塞的地方會更著變
例如
typedef struct
{
int int_a;
}TEST2;
typedef struct
{
char char_b;
char char_a;
char char_c;
char char_d;
int int_a;
TEST2 s_a;
}TEST;
時 就會變成
char_b=1
char_a=2
char_c=3
char_d=4
int_a=5
s_a=6
因為不曉得要用什麼關鍵字去查詢
只能來這問各位
又或者 我有沒有辦法知道struct結構
主要是因為我讓兩個系統用Socket做溝通
傳送間都用文字
想說有沒有快速把文字塞到struct
因為struct裡面又有陣列
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.177.156.249
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1483761254.A.F51.html
1F:→ fatrabitree: 都是char char char char into 的話或許可以用memor 01/07 13:05
2F:→ fatrabitree: y? 01/07 13:05
3F:→ fatrabitree: memset 01/07 13:05
4F:推 chuegou: 你要test.s_a.int_a為5嗎? 01/07 16:10
5F:→ Hazukashiine: 如果沒有特別原因的話 不應該有這種需求 Bad Smell 01/07 16:22
6F:推 LPH66: 同意樓上, 原 PO 你最初始的需求是什麼? 01/07 16:49
7F:推 longlongint: char array 搭配 union吧? 01/07 19:17
※ 編輯: clv (180.177.156.249), 01/08/2017 01:35:34
9F:→ Hazukashiine: 還是沒懂你要幹嘛 不過要用 socket 除非只有位元流 01/09 02:03
10F:→ Hazukashiine: 不然就是要自己實作一個自定義的表頭好讓雙邊解析 01/09 02:04
11F:→ Hazukashiine: socket 就只是位元流 你需要的是 de-/serialization 01/09 02:05