首页 > 解决方案 > 输出字符串末尾的空白不与字符串一起打印,而是与它之后的下一个打印行一起打印

问题描述

我试图打印一条要求用户输入的行,获取输入,然后再次打印一些行。问题是,在我得到输入后,第一行打印行末尾的空白不是打印在行尾,而是打印在第二行打印行的开头。

我对 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 终端有关。另外,我使用 Windows 10 作为我的操作系统。

第二次编辑:将我的发现添加到我的答案中。

标签: c++stdoutclion

解决方案


这似乎是 Clion 的缓冲输入的问题。看到这个问题:https ://youtrack.jetbrains.com/issue/CPP-7437


推荐阅读