Я бы порекомендовал использовать поток строк. Вы можете использовать перегруженные операторы ввода / вывода, как если бы вы использовали стандартный вход / выход. Примерно так:
string tempString = "123 ab";
int firstArg;
string secondArg;
stringstream stream(tempString);
stream >> firstArg >> secondArg;
cout << firstArg << " " << secondArg;
Лично я нахожу, что это немного более понятно, чем чтение строки в стандартный ввод и последующее использование стандартных операторов ввода / вывода, но, может быть, есть причина, по которой вы хотите сначала прочитать это стандартное, что я т осознать.
Надеюсь, это поможет!