由于ScanF,Seg Fault没有发生,这是由于我的Main函数有问题。使用fscanf在结构数组中设置结构的属性
我试图读取一些数据文件,并且当我尝试使用fscanf时,我的程序是seg fault。下面是我有:
while(fscanf(fr, "%d%s%d%d", riderArray[numberOfRiders].arrivalTime, riderArray[numberOfRiders].riderNumber, riderArray[numberOfRiders].floorArrival, riderArray[numberOfRiders].floorDestination)!= EOF)
{
numberOfRiders++;
}
的预期目标是,每行(这是保证格式int string int int
的)被解析成一个结构,直到file fr
所有数据被读取。
这是可行吗?
我想替代,简直是:
while(fscanf(fr, "%d%s%d%d", &temp1, &tempS, &temp2, &temp3)!= EOF)
{
riderArray[numberOfRiders].riderNumber = temp1;
etc. etc.
numberOfRiders++;
}
使用的临时变量,以避免必须的fscanf,结构和阵列完全(这很可能是清洁一下,反正结合
。这里的结构:
typedef struct rider
{
char riderNumber[5];
int timeWaiting;
int jobLength;
int arrivalTime;
int floorArrival;
int floorDestination;
} rider;
您能否提供结构的定义? – 2011-02-25 20:42:33
@布拉格 - 这是一个很好的观点。完成。 – 2011-02-25 20:54:45
第一项应该是'char riderNumber [5]'(假设你不需要指针数组)。 – chrisaycock 2011-02-25 21:02:45