C++ Array di struct e blocco struct unione

  • Creatore Discussione Creatore Discussione oiboo
  • Data di inizio Data di inizio

oiboo

Nuovo Utente
3 Nov 2006
1
0
0
Salve a tutti io sono nuovo su questo forum, e vorrei porvi un esercizio che io ho già svolto, ma vorrei renderlo più generale, l'esercizio e il seguente:
________________________
|
|ALBERTO 24 PALERMO 1
|CICCIO 26 ROMA 2
|CARLO 30 PISA 3
|
|1 CARLA 28 ROMA
|2 MARIA 28 ROMA
|3 GIUSI 28 ROMA
|________________________ |
Leggere da file nomi.TXT e copiare in "Array di Struct


coppie |0_|1_|2_|_|_|_|_|_|_|n_|

STRUCT (BLOCCO STRUCT UNIONE)
________________________
nome_lui stringa
nome_lei stringa
eta_lui intero
eta_lei intero
citta_lui stringa
citta_lei stringa
_________________________
Stampare a video il contenuto dell'array "Coppie".

Io lo svolto così:
/*LEGGI DA FILE 'ARCHIVIO_COPPPIE.txt' E STAMPA A VIDEO COPPIE GENERATE*/

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

typedef struct {
char nome_lui[50];
int eta_lui;
char citta_lui[50];
char nome_lei[50];
int eta_lei;
char citta_lei[50];
}COPPIE;

int main()
{
int i, ncoppie=0, res;
FILE *fp;
fp=fopen("Archivio_coppie.txt", "r");
COPPIE archivio[50];

if (fp==NULL)/*Si è verificato un errore: il file Achivio_coppie.txt non esiste*/
printf ("Errore: il file 'Archivio_coppie.txt' non esiste\n");

do
{ res=fscanf(fp,"%s %d %s %s %d %s", archivio[ncoppie].nome_lui,
&archivio[ncoppie].eta_lui,
archivio[ncoppie].citta_lui,
archivio[ncoppie].nome_lei,
&archivio[ncoppie].eta_lei,
archivio[ncoppie].citta_lei);
}
while (res!=EOF && ++ncoppie<50);
fclose (fp);

for (i=0; i<ncoppie; ++i)
{printf ("%s\n%s\n%d\n%d\n%s\n%s\n", archivio.nome_lui,
archivio.nome_lei,
archivio.eta_lui,
archivio.eta_lei,
archivio.citta_lui,
archivio.citta_lei);

printf("Premi INVIO per visualizzare la coppia successiva\n\n");
getchar();
}

printf ("\nPremi INVIO per terminare il programma\n\n");
getchar();


return 0;
}.

Sempre, per l'esercizio precedentemente svolto ho dei quesiti da porgervi per rendere più generico l'esercizio, avendo come file di testo "Archivio_coppie.txt" scritto nel seguende modo:

Carlo 30 Pisa 3
1 Carla 28 Roma
Alberto 24 Palermo 1
2 Maria 28 Roma
Ciccio 26 Roma 2
3 Giusi 28 Roma

Diciamo con righe mescolate, si potrebbero ricreare le coppie, facendo eseguire al programma delle scansioni che riconoscono i numeri finali per quando riquarda lui tipo: "Alberto 24 Palermo 1" e il numero iniziale per quanto riquarda lei tipo: "1 Carla 28 Roma". Per poter creare le coppie.
E controllare se nel file ci sono righe ripetute tipo:
Carlo 30 Pisa 3
.......................
......................
...........................
.........................
..............................
Carlo 30 Pisa 3

E eliminare le righe ripetute, si può fare?

Grazie in anticipo e attendo dei consigli
 

Discussioni simili