есть программа:
#include <iostream>
int main(){
float volume = 0;
std::string command = "";
std::cin >> command;
if (command == "vol"){
std::cin >> volume;
}
std::cout << "Entered volume=" << volume;
}
если ввести не vol а потом допустим 58, а сразу vol 58 то проверка пройдет успешно, и заранее в пременную volume введется значение. Это как?
std::cin >> command;
читает одно слово, а именно ваше vol.
Для чтения всей строки используйте функцию getline.
std::cin, используя operator<<, читает из потока ввода до того, как встретит пробел (условий, на самом деле, больше, подробнее можно почитать здесь). Всё, что после пробела остаётся в буфере и может быть считано повторным вызовом этого оператора.
Можно читать всю строку до \n, с использованием getline(), либо же отбрасывать ненужные части буфера с помощью ignore().
Продвижение своими сайтами как стратегия роста и независимости