我的目标是将struct中的项目存储在文件中。档案格式 看起来像这样:
XXXXX:TEMP> 20:AC = OFF
YYYYY:TEMP <20:AC = ON(etc)
我得到的只是分段错误(核心已转储)。我猜这是因为结构。我很确定 while 中的代码可以正常工作,但是我可能错了。
char *rule=(char*)malloc(sizeof(char)*80);
FILE *regra;
regra=fopen("SensorRules2.txt", "r+");
typedef struct r{
char divisao[20];
char sens[10];
char op[2];
int val;
char atuadores[10];
char estado[3];
}reg;
reg linha[42];
int l=0;
switch(atoi(MoteID)){
case 1:
while(fgets(rule, 80, regra)){
strcpy(linha[l].divisao, strtok(rule, ":"));
aux=strtok(NULL, ":");
strcpy(linha[l].sens, strtok(aux, ">"));
strcpy(linha[l].op, ">");
if(linha[l].sens == NULL){
strcpy(linha[l].sens, strtok(aux, "<"));
strcpy(linha[l].op, "<");
}
linha[l].val=atoi(strtok(NULL, ":"));
strcpy(linha[l].atuadores, strtok(NULL, "="));
strcpy(linha[l].estado, strtok(NULL, " "));
l++;
}