С++: Как сохранить остальную часть строки в переменной?

100
11

Привет, ребята, у меня есть вопрос о сохранении вывода переменной. Пусть говорят, что у меня есть 3 переменные, определяемые следующим образом:

float num, 
string units,
string rest;

и пользователь вводит это в консоль:

 12.2
mg
Vitamin

Я знаю, хочу ли я хранить его в переменных, я должен сделать следующее:

cin >> num >> units >> rest;

Но позвольте сказать, что пользователь вводит витамин А вместо витамина.

И я хочу сохранить остальную часть строки после мг в переменную "отдых". как это сделать?

Я сделал следующее:

cin >> num >> units;
getline(cin,rest); //stores the rest of the string into rest

Но это также сохраняет пробел после mg а именно, если я выхожу на rest, он выводит " Vitamin A". Я не хочу этого места в начале. Как это сделать?

Я знаю это долго, но, надеюсь, я дал понять. Любая помощь или предложения будут полезны. Благодаря,

спросил(а) 2021-01-19T18:47:19+03:00 6 месяцев, 1 неделя назад
1
Решение
89

Вы можете пропустить пробелы, используя std::ws

cin >> num >> units;
ws(cin);
getline(cin, rest);

Вы можете увидеть живой рабочий пример здесь: игнорировать ведущие пробелы

ответил(а) 2021-01-19T18:47:19+03:00 6 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема