Из того, что я понимаю о том, что вы пытаетесь сделать, я думаю, что у вас есть две проблемы.
Во-первых, вы читаете первые три строки, как если бы они были данными, но это не так, это информация заголовка. Поэтому я думаю, что вам нужно пропустить первые три строки:
// Skip first three lines
std::getline(f, line);
std::getline(f, line);
std::getline(f, line);
Другое - вам нужно прочитать символ тире '-' между значениями интервалов между классами.
В общем, что-то вроде этого:
#include <iostream>
#include <cmath>
#include <fstream>
#include <sstream>
int main()
{
std::ifstream f("t2kflux.txt");
std::string line;
// Skip first three lines
std::getline(f, line);
std::getline(f, line);
std::getline(f, line);
while(std::getline(f, line))
{
float serial;
double Energy, Energy2;
double mu;
double mubar;
double e;
double ebar;
char dash; // to absorb the '-' separator
std::istringstream ss(line);
ss >> serial >> Energy >> dash >> Energy2 >> mu >> mubar >> e >> ebar;
std::cout << Energy << "\t" << mu << "\n";
}
}