在for循环

时间:2017-03-27 15:21:27

标签: c++ string for-loop append

我制作了一个简单的C ++控制台计算器,可以完成它应该做的事情。在完成计算之后,它询问用户他/她是否想要制作另一个。如果是,则循环重复直到用户拒绝;如果没有该应用程序显示" CLOSING"并在2秒后关闭。

而不是静态" CLOSING"消息,我希望程序显示" CLOSING",等待半秒显示" CLOSING。",另一半" CLOSING ...",另一个" ; CLOSING ..." ,并通过出口(-1)关闭, 你明白了......

我已经完成了这个(带有for循环)但是每个cout都在不同的行上。 e.g。

CLOSING。

CLOSING ..

... CLOSING

我希望它是一个静态的" CLOSING"但是'。'被追加三次。

以下代码:

for (int a = 0; a < 3 ; a++)
        {
            Closing += ".";
            std::cout<<Closing<<std::endl;
            Sleep(500);

* sClosing是我定义为&#34; CLOSING&#34;的字符串。在main()之上。

所以重复我的问题:有没有办法让一行,一个&#34; CLOSING&#34;只有&#39;。&#39;被追加(3次)?

*如果这很明显,我很抱歉;我是C ++的新手,但不是编程,所以如果你愿意解释一下像'&f 39'这样的目标/功能。

这也是我在StackOverflow上的第一篇文章,所以如果有什么不清楚或错误(在格式化等方面请帮助一个菜鸟出来;-) *

2 个答案:

答案 0 :(得分:1)

在大多数控制台上,使用回车符('\r')就可以完成此操作。

for(int i = 0; i < 4; i++) {
    std::cout << "Closing";
    for(int j = 0; j < i; j++) {
        std::cout << '.';
    }
    std::cout << '\r';
    Sleep(500);
}

如果你有一个程序,而不是只是附加句号,你希望它定期更改消息,这也非常有用。

for(int i = 0; i < 4; i++) {
    std::cout << "Closing";
    for(int j = 0; j < i; j++) {
        std::cout << '.';
    }
    std::cout << '\r';
    Sleep(500);
}
std::cout << "Now Closed!" << '\n';

您的另一个选择是找到一个允许您动态编程控制台的库,但这可能会使看似相对简单的程序过于复杂。

答案 1 :(得分:0)

您必须删除添加换行符的std::endl

std::cout << "CLOSING";
for (int a = 0; a < 3 ; a++)
{
    Sleep(500);
    std::cout << ".";
}
std::cout << std::endl;