hola, mira puedes usar la funcion fprintf() o el fputchar para este caso que es casi igual su uso con caracteres o strings o similares
aqui te pongo un ejemlo :
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
main()
{
char nombre [80];
FILE *entrada;
char ch;
printf("Archivo: "); scanf("%s",nombre);
entrada =fopen(nombre, "r");//solo lectura
if(entrada==NULL)
{
fprintf(stderr,"Fallo de lectura de %s",entrada);
perror("debido a :");
getch();
exit(-1);
}
while((ch=fgetc(entrada))!=EOF)
putchar(ch);
fclose(entrada);
}
antes de que lo compiles crea un archivo de texto de cualquier nombre y si quieres escribe algo y guardalo para que veas como funciona , ya cuando compiles el programa y cuando te diga "Archivo:" escribe el nombre del archivo exactamente igual al que creaste seguido obligatoriamente de un .txt , de preferencia crea una carpeta y guarda el codigo y el archivo ahi dentro para que el sistema pueda encontrar el archivo de texto