daniele_ (Normal User)
Newbie
Messaggi: 7
Iscritto: 12/03/2009
|
Salve, avrei bisogno di leggere un file di testo riga per riga. Ogni riga è un intero. Avrei bisogno di fare la somma di ogni riga e di stamparla!
Vi sono molto grato!
Daniele
|
|
theprogrammer (Normal User)
Guru^2
Messaggi: 2509
Iscritto: 28/01/2009
|
Beh ... e non hai nessuna idea? Nessun tentativo di codice?
|
|
HeDo (Founder Member)
Guru^2
Messaggi: 2765
Iscritto: 21/09/2007
|
prego cameriere vorrei il codice...
|
|
pierotofy (Admin)
Guru^2
Messaggi: 6230
Iscritto: 04/12/2003
|
Devi utilizzare le funzioni fopen, fscanf e fclose per leggere da un file.
Dove esattamente ti blocchi nello sviluppo di questo codice?
|
|
daniele_ (Normal User)
Newbie
Messaggi: 7
Iscritto: 12/03/2009
|
ieri ero molto affrettato, altrimenti avrei postato la porzione di codice.
Codice sorgente - presumibilmente C++ |
#include <stdio.h> #include <stdlib.h> #include <string.h> main() { FILE *in; int n; int len; int i=0; int somma=0; int temp; in=fopen("input.txt","r"); while(!feof(in)) { fscanf(in, "%d\n", &n); printf("%d \n", n); len=strlen(n); printf("len=%d.\n",len); int v[len]; for (int j=0; j<len; j++){ temp=fgetc(in); printf("temp=%d.\n",temp); somma+=temp; } printf("somma=%d\n", somma); somma=0; i++; } fclose(in); system("PAUSE"); }
|
Ho però qualche problema perchè per calcolare la somma, tento di fare un vettore della lunghezza dell'intero e poi iserire carattere per carattere. E non so come fare...
Magari c'è una strada più veloce e semplice!!
Grazie
|
|
theprogrammer (Normal User)
Guru^2
Messaggi: 2509
Iscritto: 28/01/2009
|
Ma cosa intendi con "somma di ogni riga"?
Se il tuo file contenesse
12
3456
789012
cosa dovresti fare in pratica?
|
|
daniele_ (Normal User)
Newbie
Messaggi: 7
Iscritto: 12/03/2009
|
Tipo:
12
3456
789012
dovrebbe restituirmi:
(1+2)=3
(3+4+5+6)=18
(7+8+9+1+2)=27
Senza tutti i necessari passaggi...solo il risultato
|
|
theprogrammer (Normal User)
Guru^2
Messaggi: 2509
Iscritto: 28/01/2009
|
Se consideri il concetto elementare di unità, decine, centinaia, ecc ... e di resto della divisione per 10, allora e' molto semplice
Codice sorgente - presumibilmente C/C++ |
FILE *in;
int n, somma;
in=fopen("input.txt","r");
while(!feof(in))
{
fscanf(in, "%d\n", &n);
printf("%d \n", n);
somma = n % 10;
while(n>9)
{
n /= 10;
somma += n % 10;
}
printf("somma=%d\n", somma);
}
fclose(in);
|
|
|
daniele_ (Normal User)
Newbie
Messaggi: 7
Iscritto: 12/03/2009
|
caspita!! non ci avevo pensato...e non ci sarei mai arrivato...
Grazie davvero!
|
|