c - 无法从 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);
}
解决方案
if(arch=fopen("equipos.txt","rt")== NULL) -> if((arch=fopen("equipos.txt","rt"))== NULL)
-凯勒姆
这似乎奏效了。
推荐阅读
- python - 导入 ipinfo - 不工作 - 无法导入名称抽象方法
- java - Maven & Eclipse 远程调试:连接被拒绝
- assembly - 如何在汇编语言中使用“调用 PutDec”?它应该打印出斧头寄存器,但由于某种原因它什么也没给我
- c# - NLog 可以从 C# 应用程序接收一个变量,其值在运行时发生变化吗?前任。批次 ID
- c# - 如何在 C# 中从 nuget 包部署 dacpac 文件
- actionscript-3 - 如果在同一位置或碰撞,如何删除同名的孩子?AS3
- python - 如何从python中的日期开始打印前30天,在Tkinter中打印相同的日期
- python - 尽管在模块和主代码中导入了 re,但未定义名称 re
- colorfilter - 去马赛克 RCCB 彩色滤光片阵列
- javascript - 无论光标或焦点在哪里,如何在 10 秒后关闭自动完成菜单?