Как я могу прочитать одно значение на индикаторе положения файла?
Поэтому я должен прочитать случайное значение из двоичного файла. Пока мой код выглядит так.
char * filename = argv[1];
FILE * file = fopen(filename, "rb");
long int x;
x = random() % 100;
int ret = fseek(file, x, SEEK_SET);
Таким образом, у меня есть индикатор положения файла в позиции случайного значения. Теперь, как я могу прочитать только одно значение из файла? Я уже на позиции, мне просто нужно прочитать одно значение на этой позиции. Кроме того, файл содержит 100 случайных целых чисел. Это бинарный файл. Могу ли я использовать long int, чтобы получить случайное значение из файла? или мне нужно передать fseek что-то вроде x = x*sizeof(int)? Не совсем уверен, смогу ли я получить значение randomg из двоичного файла, потому что раньше я никогда не работал с этими файлами, поэтому я не знаю, как его видит мой код. Так как он открыт с параметром "rb", мой код читает значения в base10 или он видит двоичные преобразования?
1 ответ
Я не могу комментировать, поэтому я пишу отсюда. Вы действительно должны прочитать только один токен или вам необходим доступ к токену с использованием случайного числа x
?
РЕДАКТИРОВАТЬ:
Так как вам нужно прочитать токен из файла, вы можете использовать:
char * filename = argv[1];
char buffer[2];
FILE * file = fopen(filename, "rb");
long int x;
x = random() % 100;
int ret = fseek(file, x, SEEK_SET);
fread(buffer, 1, 1, file);