Хорошо, это похоже на мой последний вопрос, но то, что я закончил, было слишком сложным для чего-то такого простого.Мне просто нужно получить один символ или число (я буду знать, какой из них я получаю) из консоли после нажатия пробела вместо нажатия клавиши ввода.Я уверен, что должен быть способ, чтобы терминал читал ввод после пробела вместо '\ n'.Мне нужно прочитать входные данные из консоли, в которых последующие типы данных будут различаться в зависимости от того, что представляет собой первый вход, и я думаю, что чтение всей строки, разбор ее в строки, а затем разбор некоторых из них в целые числа является немного ненужным.
Итак, действительно ли это невозможно в C ++ или я просто еще не нашел его?
РЕДАКТИРОВАТЬ:
Для тех, у кого возникла эта проблема, я публикую свое решение,потому что теперь я чувствую себя идиотом.
#include <iostream>
using namespace std;
int main() {
int command = 0, x = 0, y = 0, z = 0;
char c;
do {
cin >> command;
switch(command) {
case 1:
cin >> c >> x;
cout << c << " " << x << endl;
break;
case 2:
cin >> x >> y >> z;
cout << x << " " << y << " " << z << endl;
break;
}
} while (command); //Exits when command = 0;
return 0;
}
Следующий cin внутри оператора switch будет читать из того же буфера, что и первый cin, так что в любом случае нет необходимости предварительно читать, что это за команда.Как вы можете видеть, это прекрасно работает для разных типов и количества входных данных после первого cin, поэтому нет необходимости использовать какое-либо другое решение.
Просто отправьте это кому-то, кто может иметь такую же проблему, и неотличное понимание работы cin.