我尝试打印一行请求用户输入的行,获取输入,然后再次打印某些行。问题是,在我获得输入后,第一个打印行末尾的空格不是在行尾打印,而是在第二个打印行的开头打印。
我对C++完全陌生,所以我不能尝试太多,但是我试着打印没有提示用户输入的部分的代码,它可以很好地打印空格,但是当我添加std::cin << input;
时,空格被发送到第二行的开头。
我的代码:
int input;
std::cout << "Enter your favorite number between 1 and 100: ";
std::cin >> input;
std::cout << "Amazing... That's my favorite number too... wow..." << std::endl;
我希望输出是
Enter your favorite number between 1 and 100: //some input
Amazing... That's my favorite number too... wow...
(注意//some input
前面的空格)
相反,我得到了
Enter your favorite number between 1 and 100://some input
Amazing... That's my favorite number too... wow...
(注意Amazing
前面的空格)
编辑:如果可以连接,我正在使用Clion。此外,我尝试在powershell上运行可执行文件,它按预期工作,没有问题,所以这与Clion终端有关。另外,我使用的是Windows10操作系统。
第二次编辑:在我的答案上添加我的发现。
发布于 2019-08-30 23:26:34
这似乎是Clion的缓冲输入的问题。请参阅此问题:https://youtrack.jetbrains.com/issue/CPP-7437
发布于 2019-08-30 22:29:34
您肯定没有吗?我在在线shell和本地机器上都试过了,它可以正常工作。
发布于 2019-08-30 23:29:00
在检查之后,我发现这只发生在Clion Run终端上,所以这只与它有关。我目前正在尝试打乱设置。如果我找到了,我会在这里发布一个解决方案和一个解释。
编辑:正如在一条评论中提到的,这可能是https://youtrack.jetbrains.com/issue/CPP-7437在这里提到的问题。
在任何情况下,它都是一个专门与Clion相关的问题,而不是一个C++问题。
https://stackoverflow.com/questions/57727656
复制相似问题