У меня есть эта функция для чтения чисел из текстовых файлов, которые структурированы следующим образом:
1 2 5
2 1 9
3 5 8
Функция правильно считывает значения в мои значения, но я хочу проверить, является ли строка, которую я прочитал, последней в файле.
Мой последний оператор if в приведенной ниже функции пытается сделать это, наблюдая, выдает ли fscanf NULL, но это не работает, функция всегда возвращает NULL, даже если это не последняя строка.
void process(int lineNum, char *fullName)
{
int ii, num1, num2, num3;
FILE* f;
f = fopen(fullName, "r");
if(f==NULL)
{
printf("Error: could not open %S", fullName);
}
else
{
for (ii=0 (ii = 0; ii < (lineNum-1); ii++)
{
/*move through lines without scanning*/
fscanf(f, "%d %d %d", &num1, &num2, &num3);
}
if (fscanf(f, "%*d %*d %*d\n")==NULL)
{
printf("No more lines");
}
fclose(f);
}
}