|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2005
Messaggi: 439
|
ordinare per cognome da file [c]
ciao raga avrei bisogno di un aiutino
ho un file nomi.txt con su scritto dei nomi e cognomi es Rossi mario Bianchi Luca verdi Antonio devo scrivere in un altro file nomi2.txt però ordinato per cognome Bianchi Luca Rossi Mario Verdi Antonio devo usare puntatori record ed allocazione dinamica Codice:
#define dim 10
#include <stdlib.h>
#include <stdio.h>
#define n 3
typedef struct {
char cognome[30],nome[30]
} persona;
main()
{ persona *dato;
persona *p;
p=(persona*) malloc(n*sizeof(persona));
int k=0;
int x=1;
FILE* lettura;
FILE* scrittura;
scrivi=fopen("nomi2.txt","wt");
if ((leggi=fopen("nomi.txt","r"))==NULL)
{
printf("ERROR");
}
//ordinamento
while (fscanf(leggi,"%s%s\n", p[k].cognome,p[k].nome)!=EOF)
{
while (fscanf(leggi,"%s%s\n", p[x].cognome,p[x].nome)!=EOF)
{
if (p[x].cognome>p[k].cognome)
{
*dato=p[x];
p[x]=p[k];
p[k]=*dato;
}
else
{
x++;
}
k++;
}
}
/*stampa*/
k=0;
while (fscanf(lettura,"%s%s\n", p[k].cognome,p[k].nome)!=EOF)
{
fprintf(scrivi,"%s %s \n",p[k].cognome,p[k].nome);
k++;
}
fclose(scrivi);
fclose(leggi);
system("pause");
}
se elimino la procedura di scambio mi sembra scrive vi ringrazio per l'aiuto |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Aug 2005
Messaggi: 439
|
vi prego datemi una mano
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ricorda che una persona può avere un nome o cognome con gli spazi...quindi ti consiglio di usare fgets per leggere l'intera riga (togli l'ultimo \n in fondo alla stringa letta, se presente)...
Secondo me ti conviene leggere prima TUTTE le stringhe...e DOPO eseguire l'ordinamento... |
|
|
|
|
|
#4 | ||
|
Senior Member
Iscritto dal: Aug 2005
Messaggi: 439
|
Quote:
non il problema non lo prevede per il momento solo nomi e cognomi interi c'è solo uno spazio tra l'uno e l'altro Quote:
Ultima modifica di *MATRIX* : 12-11-2005 alle 12:08. |
||
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ok...allora continua a leggere in questo modo... Ma leggi prima tutti i nomi ed i cognomi e mettili in un vettore di persona...
Intanto pensa al problema sopra e solo dopo devi pensare all'ordinamento... |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:32.



















