我制作了一个简单的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上的第一篇文章,所以如果有什么不清楚或错误(在格式化等方面请帮助一个菜鸟出来;-) *
答案 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;