我在一个功能中遇到问题。在那里我打开一个.txt(向右打开,我开始保存变量,直到一个if。它进入条件然后它不会做sfanf。 程序可以构建并运行,直到它通过此功能。 它表示错误所在的fscanf上方的问题。 以前的代码都应该正常工作。
ppac le_pacientes(char *nomefich){
ppac lipac=NULL,novo,aux=lipac;
pac pacientes;
FILE *f;
f=fopen(nomefich,"rt");
if(!f){
printf("Erro ao abrir ficheiro\n");
return NULL;
}
pacientes.prox=NULL;
while(fscanf(f,"%100[^\n]",pacientes.nome)==1){
fscanf(f,"%d-%d-%d",&pacientes.dn,&pacientes.mn,&pacientes.an);
pacientes.idade = verifica_idade(lipac);
fscanf(f,"%d consultas",&pacientes.nconsult);
if(pacientes.nconsult>=2)
{
/// !!!!problem!!!! ///
fscanf(f,"%s",pacientes.tipoc1);printf("hello\n\n");
//fscanf(f,"%d/%d/%d -",&pacientes.dc1,
// &pacientes.mc1,&pacientes.ac1);
//fscanf(f," %100[^\n]",pacientes.nomemed1);
//fscanf(f,"%s - %d/%d/%d - ",pacientes.tipoc2,&pacientes.dc2,
//&pacientes.mc2,&pacientes.ac2);
//fscanf(f," %100[^\n]",pacientes.nomemed2);
}
/*else if(pacientes.nconsult==1)
{
fscanf(f,"%c - %d/%d/%d - ",pacientes.tipoc1,&pacientes.dc1,
&pacientes.mc1,&pacientes.ac1);
fscanf(f," %100[^\n]",pacientes.nomemed1);
}*/
printf("hello\n\n");
novo=malloc(sizeof(pac));
if(!novo){
printf("ERRO a alocar memoria\n");
fclose(f);
return lipac;
}
*novo=pacientes;
if(!lipac)
lipac=novo;
else
aux->prox=novo;
aux=novo;
}
return lipac;