【发布时间】:2018-04-28 03:53:56
【问题描述】:
我正在尝试制作一个类似于 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,我不知道为什么会这样。最终我希望它像 pythons input() 一样运行并将它作为字符串返回。 9 = 9 和'字符串' = '字符串。
【问题讨论】:
标签: c++ input lambda return auto