Si no tienes un curso o libro de calidad es hora de conseguir uno, ello porque (lo digo en
buen plan) hay errores en casi todas las lineas.
* Cuando declaras un array e indicas sus valores iniciales mediante una lista esta debe contener por lo menos uno, no es valido utilizar (como es tu caso) una lista vacía.
* Con las funciones printf/fprintf/sprintf el especificador de formato "%s" indica que el argumento correspondiente (en tu caso 052546) es
la dirección donde se almacena la cadena. Aquí hay dos errores: el primero que difícilmente la dirección sera valida y el segundo que 052546 != 52546 (el primero se toma como base ocho).
* Al leer del archivo con fscanf y "%s" se debe indicar el nombre de un array de caracteres sin utilizar el operador "&".
El programa con las correcciones:
#include <stdio.h>
#include <stdlib.h>
#define NOM_ARCHIVO "Entrada.txt"
int main(void)
{
FILE *archivo;
long num = 52546;
if ((archivo
= fopen(NOM_ARCHIVO
, "wb+")) == NULL
){ return EXIT_FAILURE;
}
printf("I have read:%06d\n", num
);
return EXIT_SUCCESS;
}
Un saludo