codice:
fscanf(FILE *f, const char *type, void *param1, ...);
fprintf(FILE *f, const char *type, void const param1, ...);
Nello specifico:

fscanf si aspetta un puntatore al file da cui leggere, la stringa dei tipi di lettura e le aree di memoria in cui scrivere, coerentemente con i tipi richiesti:
Esempio

codice:
FILE *f;
char *s;
int i;

.
.
.

// Supponendo che la fopen() in lettura e la feof() 
// vadano a buon fine
// leggo da file una stringa, che pongo in s, ed un intero, che 
// scrivo in i, separati da spazio
fscanf(f, "%s %d", s, &i);
La fprintf scrive in f, puntatore al file, il contenuto dei parametri, nel rispetto della stringa di tipi
Esempio:
codice:
FILE *f;
char *s;
int i;

.
.
.

// Supponendo che la fopen() in scrittura
// scrivo in file la stringa s e l'intero i
// separati da spazio
fprintf(f, "%s %d", s, i);
Sono identiche e precise alle cugine scanf() e printf()