ファイルがhoge%d.txtの場合だったら
更に分けて
#define HOGE hoge
#define TXT .txt
にして

printf("%s/%s/%s %d %s \n", DIR1, DIR2, HOGE,数値 ,TXT);

みたいなまでことしないといけないですよね?