ファイルから C 配列にスキャンしようとしていますが、エラーが発生します。次のように、各行に数字のみが含まれるファイルを使用していたときにうまくいきました。
1.2
3.4
5.2
しかし、今私はこのファイルを持っています:
0001:Satriani:Joe:6:38.0
0002:Vai:Steve:1:44.5
0003:Morse:Steve:10:50.0
0004:Van Halen:Eddie:3:25.75
0005:Petrucci:John:8:42.25
0006:Beck:Jeff:3:62.0
これは、配列にスキャンしようとしている方法ですが、セグメンテーション違反が発生します!
FILE *employeesTXT;
int empID[100];
char lastName[100];
char firstName[100];
int payGroup[100];
double hoursWorked[100];
employeesTXT = fopen("employees.txt", "r");
if (employeesTXT == NULL)
{
printf("Error: file cannot be opened.\n");
} else {
while (fscanf(employeesTXT, "%[^:]:%[^:]:%[^:]:%d:%lf\n", &empID[i], lastName[i], firstName[i], &payGroup[i], &hoursWorked[i]) != EOF)
{
i++;
}
fclose(employeesTXT);
numRecords = i;
for(i = 0; i < numRecords; i++){
printf("%d - %s - %s - %d - %.2lf\n", empID[i], lastName[i], firstName[i], payGroup[i], hoursWorked[i]);
}
}
それはこの行の何かでなければなりません... %[^:]:%[^:]:%[^:]:%d:%lf\n