该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#include
#include
struct CITY{
char *name;
char *province;
char *country;
double latitude;
double longitude;
}city[1000];
int main() {
FILE *fp = NULL;
char filename[] = "C://Users//Apple//Desktop//world_cities.csv";
char *line,*record1,*record2,*record3,*record4,*record5;
int i = 0;
char buffer[1024];
if ((fp = fopen(filename, "r")) != NULL) {
while ((line = fgets(buffer, sizeof(buffer), fp)) != NULL) {
record1 = strtok(line, ",");
record2 = strtok(NULL, ",");
record3 = strtok(NULL, ",");
record4 = strtok(NULL, ",");
record5 = strtok(NULL, ",");
if(record5 == NULL){
city[i].name = record1;
city[i].province = "none";
city[i].country = record2;
city[i].latitude = atof(record3);
city[i].longitude = atof(record4);
/*
printf("%s ", city[i].name);
printf("%s ", city[i].country);
printf("%s ", record3);
printf("%s ", record4);
*/
}
else {
city[i].name = record1;
city[i].province = record2;
city[i].country = record3;
city[i].latitude = atof(record4);
city[i].longitude = atof(record5);
/*
printf("%s ", city[i].name);
printf("%s ", city[i].province);
printf("%s ", city[i].country);
printf("%s ", record4);
printf("%s ", record5);
*/
}
printf("\n");
i++;
}
}
printf("%s \n", city[200].name);
printf("%s \n", city[200].province);
printf("%s \n", city[200].country);
printf("%f \n", city[200].latitude);
printf("%f \n", city[200].longitude);
return 0;
}
我是想先弄一个结构体数组city[1000],然后读一个csv文件,把里面的东西赋值给CITY的name,province等五个值,
我感觉想法应该没错,不过实际运行的时候,不管是city[0]还是city[100]的值都是csv文件的最后一行的值,不知道为什么。