- 主题:如何用配置文件初始化结构体?
我有一个文件比如叫par.txt,内容如下:
nx:32
ny:32
dx:0.5
dy:0.2
...
同时我有一个结构体par,内容如下:
par.nx
par.ny
par.dx
par.dy
...
在配置文件中变量名和结构体中变量名相同的情况下,怎么用一个循环初始化这个结构体呢?我试了各种宏去替换,总是不成功。是不是无解呢?
--
FROM 116.236.22.*
结构体用protobuf之类来定义。支持从各种文本格式反序列化。
【 在 bestday 的大作中提到: 】
: 我有一个文件比如叫par.txt,内容如下:
: nx:32
: ny:32
: ...................
--
FROM 114.85.143.*
把你的文件弄成json,然后用boost json
【 在 bestday 的大作中提到: 】
: 我有一个文件比如叫par.txt,内容如下:
: nx:32
: ny:32
: ....................
--
FROM 223.104.244.*
获取每个成员在结构体的偏移量,然后一次增加对应成员的偏移量获得下一个成员的地址
【 在 bestday 的大作中提到: 】
: 我有一个文件比如叫par.txt,内容如下:
: nx:32
: ny:32
: ....................
- 来自「最水木 for iPhone13,2」
--
FROM 115.171.60.*
这是个办法!
【 在 PGP 的大作中提到: 】
: 把你的文件弄成json,然后用boost json
--
FROM 116.236.22.*
谢谢,我试试看。
【 在 thishome 的大作中提到: 】
: 获取每个成员在结构体的偏移量,然后一次增加对应成员的偏移量获得下一个成员的地址
: - 来自「最水木 for iPhone13,2」
--
FROM 116.236.22.*
Makefile
==================================
all:
echo '#define PAR_INITIALIZER { \\' > par.h
sed -e 's/:/ = /' -e 's/^/ ./' -e 's/$$/ , \\/' par.txt >>par.h
echo '}' >> par.h
gcc 1.c
1.c
==================================
#include "par.h"
typedef struct _PAR {
int nx, ny;
float dx, dy;
} PAR;
int main()
{
PAR par1 = PAR_INITIALIZER;
exit(0);
}
【 在 bestday 的大作中提到: 】
: 我有一个文件比如叫par.txt,内容如下:
: nx:32
: ny:32
: ...................
--
FROM 117.136.0.*
protobuf不就是这么干的吗
【 在 prc79 (PRC) 的大作中提到: 】
: Makefile
: ==================================
: all:
: echo '#define PAR_INITIALIZER { \\' > par.h
--
FROM 112.97.48.*
厉害!
【 在 prc79 的大作中提到: 】
: Makefile
: ==================================
: all:
: ...................
--
FROM 116.236.22.*