То, что ввод появляется в двух отдельных строках, не имеет ничего общего с вашей программой; Это связано с тем, что при вводе ввода вы нажимали <Enter>
после 3
. Полученный символ новой строки отображается вашим терминалом / консолью, а не вашей программой.
Использование istream::operator>>( int )
автоматически пропускает начальные пробелы. Таким образом, ваш пользователь также может написать 3 5
в одну строку. std::cin>>a;
будет потреблять 3
, а std::cin>>b;
будет пропускать пространство и потреблять 5
. Ваш терминал / консоль будет выглядеть так:
Enter two numbers to add
3 5
8
Обратите внимание, что это совершенно не связано с кодом вашей программы. Если пользователь нажимает <Enter>
между цифрами, вы ничего не можете с этим поделать, если не взять полный контроль над терминалом / консолью.
Это может быть выполнено с использованием _getch()
в Windows, ncurses
во многих других системах или любой другой операционной системы. Вы будете читать нажатия клавиш напрямую, без терминала / консоли, повторяющего то, что введено. Затем вы отвечаете за эхо, редактирование строки и т. Д.
Это совсем другой вопрос.