C:以起点读取文件

Suu*_*aku 3 c file-io

一个简单的问题,但我在书中找不到答案。我想读取一个二进制文件来为随机数生成器提供种子,但我不想每次调用该函数时都使用相同的种子为我的生成器提供种子,因此我需要为我在文件中的位置保留一个变量(不是问题),我需要知道如何从文件中的特定点开始读取文件(不知道如何)。代码:

void rng_init(RNG* rng) {
  // ...

  FILE *input = fopen("random.bin", "rb");
  unsigned int seed[32];
  fread(seed, sizeof(unsigned int), 32, input);

  // seed 'rng'...

  fclose(input);
}
Run Code Online (Sandbox Code Playgroud)

ken*_*ytm 5

您可以使用ftell()读取文件的当前位置,并fseek()跳转到特定位置,例如

long cur = ftell(f);
fseek(f, 0, SEEK_START);   // jump to beginning
fread(...)
fseek(f, cur, SEEK_START); // returning to previous location.
Run Code Online (Sandbox Code Playgroud)