Я пытаюсь сделать функцию ввода похожую на ту, что в python input()
, но из-за способа, которым функции возвращают переменные, они должны быть в формате типа функции void, int, std::string
, поэтому, когда пользователь вводит строку, она устанавливается к тому, что когда-либо должно возвращаться (IE int print()
будет означать, что возвращение также должно быть int, так что 9 = 57). Вот мое текущее состояние кода и пример того, что я хочу, чтобы происходило против того, что происходит.
//Input
auto input = [](const auto& message = "") {
std::cout << message;
const auto& x = std::cin.get();
return x;
};
const auto& a = input("Input: ");
print(a);
С этим текущим кодом, когда я набираю 9 в консоли, он возвращает a
как 57 . Я надеялся, что он вернет это просто 9 , но это, очевидно, не int
, как я набрал его на своей клавиатуре. Он также возвращает входную «строку» как 115 , я понятия не имею, почему это происходит. В конечном итоге я хотел бы, чтобы он функционировал как питоны input()
и возвращал его как строку. 9 = 9 и 'string' = 'string.