第一个cout语句末尾的空格显示在第二个cout的开头

时间:2019-09-08 13:09:42

标签: c++

有一些cout语句,但是第一条cout语句末尾的空格显示在第二条cout语句的开头。这是代码:

#include <iostream>

int main()
{
    using namespace std;
    cout << "Enter the starting countdown value: ";
    int limit;
    cin >> limit;
    int i;
    for (int i = limit; i; i--)
    {
        cout << "i = " << i << "\n";
    }
    cout << "Done now that i = " << i << "\n";

    return 0;
}

这是输出:

Screenshot of the output

1 个答案:

答案 0 :(得分:1)

那里没有空间,至少可以复制一个空间,如屏幕截图所示。正如@LightnessRacesInOrbit所说:刷新周期取决于实现,因此我们可以预期可重复性会有所不同。


您的代码的实际问题

您有两个名为i的变量:一个在外部,一个在for循环内部。

结果,for循环使用其中声明的i并按预期方式运行。

但是,在这里:

cout << "Done now that i = " << i << "\n";

您正在打印未初始化的变量i

一个很明显的提示,您应该发现阅读编译器发出的警告,如下所示:

enter image description here

还要注意完成后会打印i的垃圾值,这主要表明代码中有问题。

一个简单的解决方法是更改​​此内容:

for (int i = limit; i; i--)

对此:

for (i = limit; i; i--)

,然后输出的最后一行是这样:

  

现在完成,我= 0