При выполнении форматированного ввода (как и вы), «Enter» не является ни символом, ни условием завершения. Это просто часть пробела (например, пробел или табуляция), которая по умолчанию пропускается с целью извлечения данных.
Таким образом, единственное, что он «делает», - это запускает буферизацию строки. в терминальном клиенте и отправьте написанные до сих пор символы в вашу программу, где они обрабатываются (вместе с символом новой строки, который, как я только что сказал, игнорируется).
Если вы хотите прочитать строку за раз , затем сделайте это, используя std::getline
. Это будет читать только одну строку ввода. Затем вы можете разобрать его с помощью std::stringstream
или какой-либо другой вещи.
Вы можете сделать std::cin
не пропустить пробел , но затем пробел между вашими числами закончил бы l oop тоже.