2012-11-08 31 views
2

我在代码的最后一行出现此错误,因为我试图从extra.txt文件读取数据。记录可以从input.txt正确读取,但不知道为什么它会抛出额外文件的错误。谢谢!错误:此处未声明(不在函数中)

typedef struct { 
    char* fname; 
    char* lname; 
    int id; 
    int age; 
} data; 

typedef struct { 
    data** array; 
    int len; 
    int cap; 
}vector; 

vector* vector_read(FILE* in_file) 
{ 
    int i; 
    vector *v = (vector*)malloc(sizeof(vector)); 
    fscanf(in_file,"%d",&v->len); 
    if(in_file=NULL) 
    { 
     return NULL; 
    } 
    printf("%d",v->len); 
    data** array = (data**)malloc(sizeof(data*)*(v->len)); 
    v->array = array; 
    data *temp; 

    for(i=0;i<(v->len);i++) 
    {  
    temp = data_read(in_file);   
    v->array[i] = temp; 
    } 

return v; 
} 

    vector *v = vector_read(input); 
    printf("initial state of vector v\n"); 
    vector_print(v); 
    vector *v_add = vector_read(extra); 

编辑:

extra.txt在这种方式记录:

4 

Barak Obama 101 50 
Joe Biden 102 55 
Joe Plumber 10293 45 
Wayne Gretzky 99 56 

和input.txt中

1 

Aaaa 
Aooo 
1 
20 
+0

您需要提供更多的代码。 “input”和“extra”的定义是什么样的? –

+0

'extra'是如何定义的? – Naveen

+1

@ vp881:不是文件的内容,但是你会在代码中的某处执行'FILE * input;'。你是否也做过'FILE * extra'? – Naveen

回答

1

您的代码需要去在函数内部。

例如像这样:

int read_input_and_extra(FILE * input, FILE * extra) 
{ 
    vector *v = vector_read(input); 
    if (!v) 
    return -1; 

    printf("initial state of vector v\n"); 
    vector_print(v); 

    vector *v_add = vector_read(extra); 
    if (!v_add) 
    return -2; 

    return 0; 
} 
相关问题