Se il file ha esattamente N parole su ogni riga, come penso che sia, il problema si risolve in un attimo conIl problema, che proverò a risolvere nel pomeriggio, è che devo dividere il contenuto del file in righe...
e quindi prelevare una parola per ogni rigo!
word[x * N + y]
.Altrimenti hai ragione a parlare di strtok perché il problema è molto più complicato. Potresti fare tutto con strtok oppure usare fgets per dividere in righe e strtok per dividere ogni riga in colonne. Ti mostro una delle due soluzioni, almeno vedi anche come si usa strtok, ma secondo me non ne hai bisogno perché il tuo file ha un numero prefissato di parole per ogni riga.
C:
#include <stdio.h>
#include <string.h>
int main() {
int count[1024]; // count the number of words for each line
char *word[1024][32]; // max 1024 lines and 32 words per line
char file[1 << 20]; // max 1MB
FILE *fp = fopen("file.txt", "r");
fread(file, sizeof(char), 1 << 20, fp);
fclose(fp);
int lines = 0;
for (char *p = strtok(file, "\n"); p != NULL; p = strtok(NULL, "\n"))
word[lines++][0] = p;
for (int i = 0; i < lines; i++) {
count[i] = 0;
for (char *p = strtok(word[i][0], " "); p != NULL; p = strtok(NULL, " "))
word[i][count[i]++] = p;
}
for (int i = 0; i < lines; i++)
for (int j = 0; j < count[i]; j++)
printf("word[%d][%d] = %s\n", i, j, word[i][j]);
return 0;
}