с
.int parsed;
parsed = fscanf(file, "\"%d\"", &x);
if (parsed == 0) {
parsed = fscanf(file, "%d", &x);
}
data = std::vector<Student>();
std::vector<Student>().swap(data);
return static_cast<uint32_t>((temp >> 32)^temp);
. В младших битах как раз что вам надо получится и старшие выкинутся.
Проблема не в ваших способностях, а в том, что вы, похоже, пропустили лекции и теперь просите интернет решить вам задание.
Да что угодно. Введите в гугл "Уроки Cи" и берите первую попавшуюся ссылку.