Ho un file, il quale contiene:
"1 2 3 4 5" (ogni numero è separato da uno spazio).
Ipotizzando che io non conosca il contenuto del file, vorrei sapere quanti elementi sono presenti nella riga.
Allora, ho pensato a questo:
int main()
{
FILE *f = fopen("/home/davide/Scrivania/Esercizio 4/file.txt", "r");
char flag;
int i = 0;
while(flag != '\0')
{
fscanf(f, "%c", &flag);
i++;
printf("flag: %c", flag);
}
printf("\nElementi nel file: %d\n", i);
}
Il problema è che flag è tipo char, dunque 1 byte e non può contenere un intero (quello all'interno del file) che ne occupa 8.
Quindi, avevo pensato di dichiarare flag come int, però a questo punto non andrebbe bene la condizione del while. Insomma come devo fare? Però senza tener conto degli spazi. Vorrei che i mi desse 4.
Un'altra cosa. Se avessi un file del tipo:
1 2 3 4
4 5 6 7
3 4 5 6
E volessi contare il numero di ritorni a capo e dunque il numero di righe, come bisognerebbe fare?
Grazie