首页 > 解决方案 > 无法从 C 中的文件中读取数据

问题描述

我正在编写一个代码,该代码使用 txt 文件中的子列表创建一个列表。但由于某种原因,在打开文件并尝试读取第一行后,手表显示它们保持空白。文件“equipos.txt”在同一个文件夹中,我检查了结构,它们看起来都很好。我在另一个项目中有一个类似的代码可以正常工作,但它似乎在这里不起作用。

void crealista(tlista* l){
    tlista nuevo,ant;
    tsublista subnuevo,subant;
    char vec[MAXnom];
    FILE *arch;
    arch=fopen("equipos.txt","rt");
    if(arch=fopen("equipos.txt","rt")== NULL){
        printf("Fallo al abrir archivo, puede no existir");
    }
    else{
        (*l)=NULL;
        ant=(*l);
        while(feof(arch) == 0){
            nuevo=(tlista)malloc(sizeof(nodo));
            fscanf(arch,"%s %d",nuevo->equipo,&nuevo->puntaje);
            nuevo->jugadores = NULL;
            nuevo->sig = NULL;
            fscanf(arch,"%s",vec);
            subant=(nuevo->jugadores);
            while(strcmp(vec,"ZZZ")!= 0){
                subnuevo=(tsublista)malloc(sizeof(nodito));
                strcpy(subnuevo->nombre,vec);
                fscanf(arch,"%d %c",&subnuevo->edad,&subnuevo->estado);
                subnuevo->sig = NULL;
                if(nuevo->jugadores == NULL){
                    nuevo->jugadores = subnuevo;
                }
                else{
                    subant->sig = subnuevo;
                    subant = subnuevo;
                }
                fscanf(arch,"%s",vec);
            }
            if((*l) == NULL){
                (*l) = nuevo;
            }
            else{
                ant->sig = nuevo;
                ant = nuevo;
            }
        }
    }
    fclose(arch);
}

标签: c

解决方案


if(arch=fopen("equipos.txt","rt")== NULL) -> if((arch=fopen("equipos.txt","rt"))== NULL)

-凯勒姆

这似乎奏效了。


推荐阅读