分割错误和构造

时间:2019-03-20 00:21:49

标签: c

我的目标是将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++;
    }

0 个答案:

没有答案