Имам тази функция за четене на числа от txt файлове, които са структурирани така:
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);
}
}