Devo contare quanti elementi, precisamente numeri, ci sono all'interno del file.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void array()
{
int lunghezza = 0, i = 0;
char buf[200];
char *str;
FILE *f = fopen("/home/davide/Scrivania/Esercizio 8/array.txt", "r");
if(f == NULL) printf("Errore nell'apertura del file.\n");
else
{
while(!feof(f))
{
str = fgets(buf, 200, f);
while(str[i] != '\0')
{
if(str[i] == ' ')
lunghezza++;
i++;
}
lunghezza = lunghezza + 1;//In una stringa di numeri, separati ognuno
//da uno spazio, gli elementi della stinga sono
//n spazi + 1
}
printf("Lunghezza: %d\n", lunghezza);
}
}
Però, c'è qualcosa che non va.
Ad esempio, nel mio caso, il file è:
1 2
3 4
5 6
7 8
9 0
1 2
3 4
6 7
1 2
6 5
Se andassi a stampare dovrebbe tornarmi 20, perché appunto sono venti numeri. Ma, a me, stampa 11. Perché?
Grazie