Я работаю над программой, которая генерирует файл FDF для заполнения формы Adobe PDF. В настоящее время у меня есть различные процедуры, которые вызываются, так как перед тем, как каждая из них завершается, она открывает файл FDF, записывает свои конкретные данные и закрывает файл.
Я пытаюсь поместить код для записи данных в файл FDF в отдельную процедуру, а затем заставить другие процедуры вызывать его. Это позволило бы лучше разделить код по задачам, и если бы мне пришлось изменить его в будущем, я мог бы сделать это легко.
У меня возникли некоторые проблемы, так как мне нужно передать различное количество переменных в fprintf. То есть раньше у меня была такая строка:
fprintf(fp,"<</T(f1_44(0))/V(%d)>>\n",wages);
Я написал следующую функцию, но не могу заставить ее работать:
void writeToFDF(FILE *fp, char *filename, char *data, char *arg)
{
/* independent method for writing to FDF file */
/* open file */
fp=fopen(filename,"a");
fprintf(fp,data,arg);
/* close file */
fclose(fp);
}
Так что теоретически я бы тогда в вызове родительской функции:
writeToFDF(fp,"1040.fdf","<</T(f1_44(0))/V(%d)>>\n",wages);
Я получаю ошибки прямо сейчас, и я считаю, что это связано с последней частью аргументов функции. Кроме того, как я могу заставить это работать, если у меня есть многократные аргументы?
Спасибо.