我正在从文件中读取数据并将其写入数组。这有效,但我似乎无法正确地从数组中读出它。错误在哪里?
int main(){
struct mountain{
char name[300];
char height[5];
};
struct mountain mountainArray[8];
fp = fopen("berge.txt", "r");
if(fp == NULL) {
perror("Error opening file");
return(-1);
}
int i=0;
while ( fgets(readLine, buflen, fp)){
if(i<8){
char * p;
p = strtok (readLine,":");
if (p != NULL){
strcpy(mountainArray[i].name,p);
p = strtok (NULL, ":");
if (p != NULL)
strcpy(mountainArray[i].height,p);
}
i++;
}
}
unsigned int f;
for (f=0; f<8; f++){
printf("%s\n", mountainArray[i].name);
}
fclose(fp);
return 0;
}
答案 0 :(得分:2)
在行
printf("%c\n", mountainArray[i].name);
我认为你的意思是f
,而不是i
。
(Ivaylo是对的 - 你想要%s
代表字符串。)
答案 1 :(得分:0)
您应该使用%s
格式说明符而不是%c
打印字符串。