У меня есть текстовый файл с номерами в каждой строке. Я хочу написать функцию в C, которая читает в файле и возвращает следующий номер в файле каждый раз, когда вызывается функция.Прочитайте следующую строку файла при каждом вызове функции
Например, если у меня есть эти цифры:
100
200
300
400
и функция называется get_number(), если я позвоню get_number() вернет 100, если я буду называть его снова, он будет возвращать 200, и т.д.
Это то, что я написал до сих пор, но каждый раз, когда вызывается функция, он всегда возвращается к первому номеру в текстовом файле.
int * get_number()
{
FILE* file = fopen("random_numbers.txt", "r");
char line[256];
if (file==NULL)
{
perror ("Error reading file");
}
else
{
fgets(line, sizeof(line), file);
printf("%s", line);
}
return 0;
}
Вы хотите использовать 'ftell()', чтобы получить ваше текущее положение в файле после чтения, и вы захотите использовать 'fseek()' для поиска t o это положение перед каждым последующим чтением. – Icemanind
Здесь вы пропускаете дескрипторы файлов. По меньшей мере. – wildplasser
Вы повторно открываете файл каждый раз, когда вызывается функция. Попытайтесь сделать это один раз, либо сделав это вне метода, либо проверив, что этот файл равен NULL перед открытием файла. – dramzy