После редактирования и выложенного кода
Ваша проблема в том, что вы лжете компилятору. Не делай этого. Это не нравится :) 1003 *
Вы просите, чтобы компилятор прочитал строку и 2 целых числа ... но затем велели ему поместить результаты в массивы символов (корректно только для первого преобразования)
/* char[] but %d wants pointer to int */
fscanf(func,"%s %d %d", var1,var2,var3);
/* all var1, var2, and var3 are arrays of char! */
Попробуйте объявить переменные как
char var1[10];
int var2,var3;
Oh! func
объявлен как обычный символ. Вы, вероятно, хотите что-то еще.
После того, как вы объявите свои переменные таким образом, вам нужно изменить scanf
вызовом pass адрес адресов int, а не их (неинициализированных) значений.