如何在不创建新行的情况下使用 cin 输入变量?

新手上路,请多包涵

每当我使用 cin 输入变量时,点击输入后它会自动转到新行。我很好奇是否有一种方法可以使用 cin 而无需换行。我想 cincout 在命令提示符的同一行中执行多个操作。这可能吗?

原文由 Thomas Boxley 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 606
2 个回答

您不能为此使用 cin 或任何其他标准输入。但肯定有可能达到您想要的效果。我看到您在 Windows 上使用 Visual Studio,因此您可以使用例如 _getch 。这是一个读取到下一个空格并将结果存储在字符串中的示例。

 #include <conio.h> // for _getch

std::string get_word()
{
    std::string word;
    char c = _getch();
    while (!std::isspace(c))
    {
        word.push_back(c);
        std::cout << c;
        c = _getch();
    }
    std::cout << c;
    return word;
}

这不是很好。例如,它不能很好地处理非打印字符输入。但它应该让你知道你需要做什么。您可能还对 Windows API 键盘功能 感兴趣。

如果您想要更广泛的受众,您将需要研究一些跨平台库,例如 SFMLSDL

原文由 Benjamin Lindley 发布,翻译遵循 CC BY-SA 3.0 许可协议

我无法发表评论,但如果你在整数之间留有空格,那么你可以获得所需的效果。这也适用于 cin

 int a, b, c;
cin>>a; cin>>b; cin>>c;

如果您将值输入为 10 20 30 那么它们将分别存储在 a、b 和 c 中。

原文由 amancalledaman 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题