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

Tho*_*ley 14 c++ windows visual-studio

每当我使用输入变量时cin,在一次点击输入后它会自动转到一个新行.我很好奇是否有一种方法可以使用,cin而不必去新线.我想cin,并cout在命令提示符下在同一行多件事情.这可能吗?

Ben*_*ley 8

您不能使用cin或任何其他标准输入.但肯定有可能获得你想要的效果.我看到你使用Visual Studio在Windows上,所以你可以使用例如_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;
}
Run Code Online (Sandbox Code Playgroud)

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

如果您想要更广泛的受众,您将需要查看一些跨平台库,如SFMLSDL.


小智 5

您还可以使用空格进行输入,而不必输入以下内容:

cin >> a >> b >> c;
Run Code Online (Sandbox Code Playgroud)

然后输入

10 20 30
Run Code Online (Sandbox Code Playgroud)

然后

a=10
b=20
c=30 
Run Code Online (Sandbox Code Playgroud)