为什么我不能从阵列中读取数据?

时间:2013-11-18 13:26:10

标签: c arrays

我正在从文件中读取数据并将其写入数组。这有效,但我似乎无法正确地从数组中读出它。错误在哪里?

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;
}

2 个答案:

答案 0 :(得分:2)

在行

printf("%c\n", mountainArray[i].name);

我认为你的意思是f,而不是i

(Ivaylo是对的 - 你想要%s代表字符串。)

答案 1 :(得分:0)

您应该使用%s格式说明符而不是%c打印字符串。