Yo suelo utilizar un while() de esta forma:
Con fin lo que haces es obtener el número de datos leídos, en este caso sería uno, ya que solo hay un %d. Cuando fscanf no encuentra más datos que escanear devuelve el valor -1, por eso el ciclo se repite hasta llegar al final.
Código (c) [Seleccionar]
fin = fscanf(archivo, "%d", &numero);
while(fin != -1) {
//tu codigo
fin = fscanf(archivo, "%d", &numero);
}
Con fin lo que haces es obtener el número de datos leídos, en este caso sería uno, ya que solo hay un %d. Cuando fscanf no encuentra más datos que escanear devuelve el valor -1, por eso el ciclo se repite hasta llegar al final.