Buonasera a tutti, sto scrivendo in C un programma che confronta gli argomenti della console con un dizionario per vedere se vi sono presenti, per poi stamparli nuovamente in console qualora riuscisse a trovarli.
Il mio obiettivo sarebbe quello di stampare in console tutti gli argomenti inseriti che sono stati anche trovati nel dizionario, invece l'output del programma e' solo il primo argomento tra tutti che viene trovato nel dizionario, poi il programma si interrompe.
Quindi se avvio il programma con gli argomenti "casa penna mano" il programma segnalera' solo casa come parola trovata nel dizionario, nonostante penna e mano siano entrambe presenti.
(Avevo anche provato a realizzare il programma utilizzando un'intera stringa presa dalla console con scanf, ma confrontandola con il dizionario il risultato e' simile, con la differenza che in questo caso riconosce solo l'ultima parola)
Ecco il codice, grazie in anticipo!
codice:
#include <stdio.h>#include <stdlib.h>
#include <string.h>


int main(int argc, char **argv)
{
    FILE* dictionary = fopen("dictionary.txt", "r");
    
    int c;
    
    for (int i = 1; i < argc; i++)
    {
     while(c!=EOF)
     {
        c = getc(dictionary);
        char dictword[50];
       fscanf(dictionary, "%s", dictword);
             
        if(strcmp(dictword, argv[i]) == 0)
        {
            printf("found %s\n", argv[i]);
                              
        }
     }
    }
    fclose(dictionary);
    return 0;
}