File

di il
3 risposte

File

Qualcuno sa dirmi dov è l'errore in questo codice?
L' errore che il compilatore mi da è: [Error] ld returned 1 exit status
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct{
	char *codAtl;
	int vTempo[2];
}t_atleta;

typedef struct{
	char *nomeNaz;
	t_atleta *vAtleti;
}t_nazione;

int main(int argc, char *argv[]) {
	FILE *fp;
		fp=fopen("team.txt","r");
		if(fp==NULL)
			printf("Errore di apertura");
		else{
			
		int c,M;
		char *str;
		int dim=0;
		do
		{
			c=fgetc(fp);
			if((c!=EOF && c!='\n')&&c!='*') dim++;
		}while((c!=EOF && c!='\n')&&c!='*');
		printf("\n %d",dim);
		printf("\nPos nel file e': %d ",ftell(fp));
		fseek(fp,0,SEEK_SET);   //riposizioniamo l'indicatore di posizione all'inizio del file (posizione 0)
		printf("\nPos nel file e': %d",ftell(fp));  //ftell ci ricava l'attuale posizione dell'indicatore di posizione
		str=(char*) malloc (dim+1);   //malloc ci crea spazio in memoria di dim+1 (quindi 4+1=5), prima covertiamo da void a char, ovvero facciamo in modo che malloc veda str come un insieme di char
		printf("\nPos nel file e': %d",ftell(fp)); 
		fgets(str,dim+1,fp);			//otteniamo la stringa 
		printf("\nPos nel file e': %d\n",ftell(fp));	//posizione dell' indicatore 
		puts(str);
		puts(strtok(str,"="));  //stampa stringa troncata
		M=atoi (strtok (NULL, "="));  //converte stringa in un intero
		printf("\n%d  \n", M);
			
		while(c!='\n' || c!=EOF){
			c=fegtc(fp);			//per andare alla seconda riga
		}
		do
		{
			c=fgetc(fp);
			if((c!=EOF && c!='\n')&&c!='*') dim++;
		}while((c!=EOF && c!='\n')&&c!='*');
		printf("\nPos nel file e': %d ",ftell(fp));
		c=fgetc(fp);
		puts(str);
		
		
		
	}
	fclose(fp);
return 0;
}

Allegati:
22833_9d93a405780bf76c61388124a50e594d.png
22833_9d93a405780bf76c61388124a50e594d.png

3 Risposte

  • Re: File

    A parte il fatto che non si vede nulla nell'immagine (te ne sei accorto?), sei sicuro che non ci siano altri messaggi prima di quello?

    Ad esempio qualche avviso/errore riguardante questa linea

    c=fegtc(fp); //per andare alla seconda riga

    ?
  • Re: File

    Ho modificato l' immagine. Adesso si vedono gli errori.
    Comunque sì, c=fegtc(fp) lo uso per andare a capo.
  • Re: File

    Ma hai letto BENE quella riga?

    Hai letto BENE il secondo messaggio del compilatore?

    Bisogna fare attenzione quando si programma.
Devi accedere o registrarti per scrivere nel forum
3 risposte