Oppure

Loading
12/03/09 19:07
daniele_
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
aaa
12/03/09 20:08
theprogrammer
Beh ... e non hai nessuna idea? Nessun tentativo di codice?
aaa
13/03/09 0:40
HeDo
prego cameriere vorrei il codice...

aaa
13/03/09 3:59
pierotofy
Devi utilizzare le funzioni fopen, fscanf e fclose per leggere da un file.

Dove esattamente ti blocchi nello sviluppo di questo codice?
Il mio blog: piero.dev
13/03/09 14:20
daniele_
ieri ero molto affrettato, altrimenti avrei postato la porzione di codice.
#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
aaa
13/03/09 14:32
theprogrammer
Ma cosa intendi con "somma di ogni riga"?

Se il tuo file contenesse

12
3456
789012

cosa dovresti fare in pratica?
aaa
13/03/09 14:37
daniele_
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
aaa
13/03/09 14:48
theprogrammer
Se consideri il concetto elementare di unità, decine, centinaia, ecc ... e di resto della divisione per 10, allora e' molto semplice

  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); 
aaa