這是我的結構計劃不想要讀取文件
typedef struct {
char mmsi[10];
char name[20];
double latitude;
double longitude;
int course;
double speed;
}Vessel;
這是我的功能,不想要工作
void searchByLatLong(double latitude, double longitude){
FILE * file;
struct dirent *drnt;
DIR * dir = opendir("./text");
char *path = (char *)malloc(19);
Vessel *vessel = (Vessel *)malloc(sizeof(Vessel));
while((drnt = readdir(dir)) != NULL) {
if(strcmp(drnt->d_name,".") && strcmp(drnt->d_name,"..")) {
strcpy(path,"text/");
strcat(path,drnt->d_name);
file=fopen(path, "r");
fscanf(file," %s %[a-zA-Z0-9 ]19s %lf %lf %d %lf", &vessel->mmsi,&vessel->name,&vessel->latitude,&vessel->longitude,&vessel->course,&vessel->speed);
// if (mmsi+".txt" == drnt->d_name){
printf("%s\n%s\n%lf\n%lf\n%d\n%lf\n\n",vessel->mmsi,vessel->name,vessel->latitude,vessel->longitude,vessel->course,vessel->speed);
//}
fclose(file);
}
seekdir(dir, telldir(dir));
// if(this->mmsi == mmsi){
// printVessel();
// }
}
closedir(dir);
}
當我嘗試加載它加載只有兩個第一字符串,然後txt文件之後它會記住一些垃圾。數據加載到另一個變量改變不了什麼;/ 這是應該被加載的樣品txt文件:
3
RMS Titanic
22.222
33.333
4
5.9
在任何情況下,您應該添加一些錯誤檢查到您的代碼。 'fscanf'返回一個非常有用的值 - 已成功讀取的項目數。這可能有助於找到真正的原因。 (當然,'fopen'也是如此。) – 2012-03-25 01:18:48