Ошибка сегмента не произошла из-за ScanF, это было связано с проблемой с моей основной функцией.
Я пытаюсь прочитать некоторые файлы данных, и моя программаОшибка seg, когда я пытаюсь использовать 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;