Ciao!

Sono alle prime armi con c++...

Perdonatemi il disordine della sintassi e i casini che ho fatto...

Non riesco a spostarmi dal primo valore della struct... rimane inchiodato li senza muoversi e mostra sempre la prima riga invece di mettere nella struct le altre...

Avete idee di come risolvere?

File tel.txt:

2203 +390103532154 01/04/04 12:43.10 00:04:23
2701 +390185327643 17/08/03 10:04.23 01:25:47
2203 27/01/04 09:49.34 00:01:25
2527 +1063363715 07/10/03 12:13.18 00:06:17
2203 +390493699213 11/02/04 17:09.06 00:29:03
2203 +393483532154 27/01/04 04:32.28 00:02:34
2629 +490366593212 19/06/04 09:40.11 00:13:20


codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

	char interno[10], numero[20], data[20], ora[10];
	char dore[4], dminuti[4], dsecondi[4];
	char c, tmp[10];
	int i = 0;
	int temp1,temp2;


char* leggi(FILE *f)
	{

while ( ( c = getc (f) ) != ' ' )
{

	if ( c == NULL )
		return NULL;

	interno[i++] = c;

}

interno[i]='\0';


if ( ( c = getc (f) ) == '+' ) // caso in cui c'è il numero di telefono
{
	i = 0;
	numero[i++] = c;
	while ( ( c = getc (f) ) != ' ' )
		{

			numero[i++] = c;

		}

	numero[i]='\0';
	fscanf (f,"%s",data);

}

else
{	
	data[i++] = c;
	while ( ( c = getc (f) ) != ' ' )
		{

			data[i++] = c;
			
		}
data[i]='\0';
}

	fscanf (f, "%s", ora);

i = 0;

while ( ( c = getc (f) ) != ':' )
		{

			dore[i++] = c;
			
		}

dore[i]='\0';

i = 0;

while ( ( c = getc (f) ) != ':' )
		{

			dminuti[i++] = c;
			
		}
dminuti[i]='\0';
	
i = 0;

while ( ( c = getc (f) ) != '\n' )
		{

			dsecondi[i++] = c;
			
		}
dsecondi[i]='\0';
	}




struct lista {
	char *interno;
	char *numero;
	char *data;
	char *ora;
	int	dore;
	int dminuti;
	int dsecondi;
	lista *next;
} *current;

struct general {
	lista *primo;
	lista *ultimo;
} elenco;



void inserisci(char *e1, char *e2, char *e3, char *e4, int e5, int e6, int e7) 
{

	lista *nuovo;
	nuovo = new lista;
	nuovo->interno = e1;
	nuovo->numero = e2;
	nuovo->data = e3;
	nuovo->ora = e4;
	nuovo->dore = e5;
	nuovo->dminuti = e6;
	nuovo->dsecondi = e7;

	current = nuovo;
	nuovo->next = NULL;

}


void printa(void){

printf ("%s %s %s %s %d:%d:%d", current->interno, current->numero, current->data, current->ora, current->dore,current->dminuti,current->dsecondi);

}




int main ()
{

	char *e1, *e2, *e3, *e4;
	int e5,e6,e7;

FILE * f;
	f = fopen ("tel.txt","r");

leggi(f);



while ( (e1 = strdup(interno)) != NULL)
{
e2 = strdup(numero);
e3 = strdup(data);
e4 = strdup(ora);
e5 = atoi(dore);
e6 = atoi(dminuti);
e7 = atoi(dsecondi);
inserisci(e1,e2,e3,e4,e5,e6,e7);

printa();

current = current->next;

}


	fclose (f);


  return 0;
}