【发布时间】:2011-07-04 14:06:38
【问题描述】:
Seg Fault 不是由于 ScanF 而发生的,而是由于我的 Main 函数出现问题。
我正在尝试读取一些数据文件,当我尝试使用 fscanf 时,我的程序出现了段错误。这是我所拥有的:
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;
【问题讨论】:
-
你能提供结构的定义吗?
-
@Blag -- 这是一个很好的观点。完成。
-
第一项应该是
char riderNumber[5](假设您不需要指针数组)。