A quanto sembra dal codice, sul file ci devi scrivere, non leggere. Modifica la chiamata a fopen() con "w" come secondo argomento, non "r". E comunque in generale dopo l'apertura dei file fai sempre una verifica del puntatore al file stream che hai appena tentato di aprire: se è NULL significa che hai sbagliato qualcosa. In questo modo puoi renderti conto più facilmente di errori del genere.
codice:ofp = fopen ("dizionario.txt", "w"); if (ofp == NULL) { fprintf(stderr, "Problema nell'apertura del file.\n"); return -1; }