-1
fscanf(ifile, "%c", &jnk);
/* If there's a height, this will be a ". if not, it'll be a ,*/
if ((jnk = '\"') || (jnk != ',')) {
    printf("%c", jnk);
    while(fscanf(ifile, "%c", &data) && data != ',' && data != '\"' && data != '\'') {
        printf(" %c ", data);
        weight[a]= data;
        a++;
    }
    weight[a] = '\0';
    player[n].weight=atof(weight);
    printf("%.0f ", player[n].weight);
} else if(data == ' ' || data == ',') {
    player[n].weight= 0;
    printf("%.0f ", player[n].weight);
}

GDB 告诉我将数据存储到重量中会给我 seg 错误。谁能告诉我为什么?

4

2 回答 2

0

我认为问题要么在这里

fscanf(ifile, "%c", &data)

或者

 printf(" %c ", data);

根据数据的数据类型,您解释此变量的方式存在问题,并且还取决于您定义的不同变量的初始值是什么。

于 2013-05-12T17:02:47.190 回答
0

问题在这里:

我希望你分配",给一个。当你使用 时weight[a],你会得到一个错误,因为字符的 ASCII 值被取了,这可能超出了你声明的数组大小的范围

于 2013-05-12T16:49:52.870 回答