|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Oct 2004
Città: Nola [NA]
Messaggi: 44
|
[C++] Algoritmo di ricerca di una linea in un file
Salve a tutti... sono al rpimo anno di ingegnieria informatica e mi serve una mano con un programma...
dovrei sviluppare una funzione che mi restituisca una stringa realtiva ad una riga di un file... per esmpio file stringhe.txt Codice:
Hello World lalala tralalala ding dong Codice:
string getData(int line) { string newstring = ""; //algoritmo per leggere dal file stringhe.txt una determinata linea e settarla come newstring ... return newstring; } Codice:
... data = getData(4); // 4 è la linea numero quattro del file corrispondente alla stringa tralalala //data ora è uguale a tralalala ... ringrazio chiunque vorrà risp. ![]() ![]() ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jun 2003
Città: Genova
Messaggi: 5676
|
il tuo problema quale è?
se è nel cercare la riga la prima cosa che mi viene in mente è lanciare n volte una getline e restituire solo l'ultima. ti basta un ciclo e è fatta. non è il massimo, ma suppongo funzioni ciao! |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Oct 2004
Città: Nola [NA]
Messaggi: 44
|
si scusami... non so come fare per farmi restiturie la riga partendo dal numero di riga... cioè come ho descritto prima... Dici un ciclo con getline? Ma poi come faccio a farmi stamparo o memorizzare in una variabile una determinata riga?... Stopensando di usare un array... tu cosa puoi dirmi?
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jun 2003
Città: Genova
Messaggi: 5676
|
non puoi usare string? ti eviti i limiti dell'array
ciao |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 673
|
non e' difficile fai cosi':
char *data(int line,FILE *read){ int i=0,lineread=1; char c,buffer[100]; c = getc(read); while(c != EOF){ while(c != '\n'){ buffer[i++] = c; c = getc(read); } buffer[i] = '\0' if(c == '\n'){ i = 0; if( lineread == line) return strdup(buffer); else{ lineread++; c = getc(read);} }} return NULL; } possibilie che ci siano degli errori l'ho fatto di getto e non lho provato controllalo ciao ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:08.