Allora, io senza l'uso della stringa l'ho svolto così, spero si capisca:

codice:
/* Generare 10000 numeri pseudo-random e salvare i risultati su un file
formattato randat.dat (cioè fine TESTUALE) con record (cioè righe) di 60 caratteri e un file binario (cioè non formattato)
(randat.bin). */

#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <string.h>

int main(void)
{
  int i, numeri[100], n=100;
  srand((unsigned) time(NULL));
  
  FILE *fileid;
  fileid=fopen("randat.dat","w");  
  
  /* stampo i numeri casuali generati sullo schermo e contemporaneamente sul file randat.dat */
  printf("\n\nNumeri casuali:\n");
  for (i=0;i<n;i++)
  {
    numeri[i]=rand()%n;
    if ((i+1)%12==0)
    {
      printf(" %2d  \n",numeri[i]);	/* ogni numero occupa così 5 caratteri */
  /* poiché devo avere righe di 60 caratteri e ogni numero occupa 5 caratteri, posso avere fino a 60/5=12 numeri per riga: per questo uso il costrutto if */
      fprintf(fileid," %2d  \n",numeri[i]);
    } else {
      printf(" %2d  ",numeri[i]);
      fprintf(fileid," %2d  ",numeri[i]);
    }
  }

int fclose(FILE *fileid);
printf("\n\n");
return 0;
}
Ma ormai mi è rimasto il pallino di come scrivere su stringa gli elementi di un vettore, che non riesco a risolvere e che magari potrebbe essermi utile per qualche altro esercizio!