The way the input operators work is it stops at the point in the stream that no longer matches the target (in addition to on separators, like space). So, just treat the hour and minute as integers in the input stream, but you also have to swallow the colon character.
std::istringstream f("name 19:30 234");
std::string name;
int hour;
int minute;
int price;
char c;
f >> name >> hour >> c >> minute >> price;