Dante.cpp (Normal User)
Pro
Messaggi: 65
Iscritto: 23/11/2011
|
Ho la necessita di scrivere una funzione che: conti il numero stringhe, di dimensione data, all'interno di un file; Ogni stringa finisce con '\n'.
Io ho pensato una cosa del genere, ma non riesco ad accordarmi con il mio caro amico gpp! xD
Codice sorgente - presumibilmente C/C++ |
FILE *pfile;
short cont = 0;
while(fgets (stringa, lungstring, pfile) != EOF)
{
pfile = fopen("filesempio.txt", "r");
fgets (stringa, lungstring, pfile);
fclose(pfile);
cont++;
}
|
che mi proponete?
Ultima modifica effettuata da Dante.cpp il 26/02/2012 alle 14:01 |
|
nessuno (Normal User)
Guru^2
Messaggi: 6380
Iscritto: 03/01/2010
|
Prima di tutto, la open si fa all'inizio e la close alla fine, *fuori* dal ciclo.
E poi, perché due fgets?
Ultima modifica effettuata da nessuno il 26/02/2012 alle 14:24
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
Dante.cpp (Normal User)
Pro
Messaggi: 65
Iscritto: 23/11/2011
|
non so, è la prima volta che ho a che fare con queste funzioni, su internet ho trovato sono roba teorica e pochi esempi, come posso fare a dirli di leggere le stringhe terminanti con new-line, sinché non finisce il file?
la soluzione penso abbia un aspetto simile:
Codice sorgente - presumibilmente C/C++ |
FILE *pfile;
short cont = 0;
pfile = fopen("filesempio.txt", "r");
while(/*???*/ != EOF)
{
fgets (stringa, lungstring, pfile);
cont++;
}
fclose(pfile);
|
Ultima modifica effettuata da Dante.cpp il 26/02/2012 alle 15:12 |
|
dmr (Normal User)
Pro
Messaggi: 141
Iscritto: 04/01/2012
|
Ciao, così dovrebbe andare:
Codice sorgente - presumibilmente C++ |
int conta(const char *nomeFile) { int contatore=0; char str[100]; FILE *fp=fopen(nomeFile,"r"); if(fp!=NULL) { while(!feof(fp)) { fgets(str,100,fp); ++contatore; } } fclose(fp); return contatore; }
|
Ultima modifica effettuata da dmr il 26/02/2012 alle 16:44 |
|
Dante.cpp (Normal User)
Pro
Messaggi: 65
Iscritto: 23/11/2011
|
grazie mille, proprio ora leggevo della funzione feof()...
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6380
Iscritto: 03/01/2010
|
Roba teorica?
Bella questa ...
Guarda che si parte dalla teoria ... è *necessario* studiare la parte teorica prima di iniziare a programmare ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
Dante.cpp (Normal User)
Pro
Messaggi: 65
Iscritto: 23/11/2011
|
non ho detto d'aver trascurato la teoria, semplicemente m'era necessario qualche esempio per vedere, in che modo utilizzare al meglio le funzioni e con quali altre farle interagire ad es. feof()
|
|