|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: May 2010
Messaggi: 21
|
[C]TORNARE INDIETRO DI RIGA FILE
CIAO A TUTTI DEVO FARE UN PRGRAMMA C CHE DATO UN FILE ESEPIO
FILE A: CIAO DARIO PINCO STAMPI NEL FILE C L ULTIMA RIGA DEL FILE A COME PRIMA OVVERO FILE C: PINCO DARIO CIAO COME POSSO FARE? DEVE ESSERE OTTIMALE ANCHE SU UN FILE D GROSSE DIMENSIONI |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Non scrivere maiuscolo, sul web significa urlare.
Scorri tutto il file carattere riga per riga (fgets) e ti memorizzi l'ultima riga letta e la posizione nel file del primo carattere di quella riga. Se il file è finito hai trovato ciò che devi scrivere in cima. Per modificare il file devi scrivere un nuovo file con la prima riga in cima ed il contenuto del vecchio file fino alla posizione del primo carattere della riga che hai messo in cima. Ultima modifica di cionci : 08-05-2010 alle 10:03. |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
|
credo venga molto naturale un approccio ricorsivo
Codice:
void reverse_print(FILE *f) {
int lastline = 1;
char s[BUFSIZE];
fgets(s, BUFSIZE, f);
if (!feof(f)) {
reverse_print(f);
lastline = 0;
}
printf("%s", s);
if (lastline)
printf("\n");
}
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2787
|
Se ho capito bene deve scambiare solo la prima e l'ultima riga, non riscrivere tutte le righe al contrario. Ad ogni modo il tuo programma non funzionerebbe per file molto grandi.
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Esatto, esaurirebbe lo stack
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
|
ovvio, ma è anche il modo più efficiente e comodo per stampare al contrario.. dipende da cosa devi fare
comunque in effetti da come ha scritto non deve stampare al contrario, ma invertire la prima e l'ultima riga, quindi il problema non si pone |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:08.




















