Możesz tak:
using lim = std::numeric_limits<std::streamsize>;
std::ifstream is (...);
size_t weight;
size_t height;
while(is.ignore(lim::max(), ';').ignore(lim::max(), ';') >> weight
&& is.ignore(lim::max(), ';') >> height)
{
std::cout << weight << ' ' << height << '\n';
is.ignore(lim::max(), '\n');
}