我有这个函数,它读取以下格式的一些字符串:
2
London Berlin 220 1.5
London Milan 280 2.5
...
同样的东西也应该被阅读...
2是在其自身之后的字符串的数目.为此,我有以下功能:
void allocate_info(FILE* fptr, info_t* cities_info, int N){
int tmp_flights;
int i = 0;
while(fscanf(fptr, "%d", &tmp_flights) == 1){
printf("%d\n", tmp_flights); // this print!!!
char tmp_departure[LENGTH], tmp_arrival[LENGTH];
int tmp_price;
float tmp_duration;
for(int i = 0; i < tmp_flights; i++){
fscanf(fptr, "%s %s %d %f", tmp_departure, tmp_arrival, &tmp_price, &tmp_duration);
strcpy(cities_info[i].departure, tmp_departure);
strcpy(cities_info[i].arrival, tmp_arrival);
cities_info[i].price = tmp_price;
cities_info[i].duration = tmp_duration;
}
}
}
"这张照片!"实际上打印所有数字,但在结束时程序失败(错误1).这是我的主要职能:
int main(void) {
FILE* fptr = fopen("D:/ap2/lab02ex01/file.txt", "r");
int N;
info_t* cities_info = (info_t*)malloc(sizeof(info_t) * N);
N = read_number_of_cities(fptr); // some other function
allocate_info(fptr, cities_info, N); // ERROR HERE?!?
return 0;
}
我对它感到非常困惑,因为它打印的所有东西都正确,但程序由于某种原因失败了.请帮帮我.