是否可以在Windows中使用cout
打印一行文本,只能在重复调用或更新的函数内一次打印到控制台?
为了给出一些范围,我有一个键盘输入功能被调用来检查按键,当我按"C"
我的相机的值被更新时,我打印出确认到控制台:{{1 }“...<< endl;`但是它会永远打印在无限循环中。
这可能听起来像一个简单的问题,但这是我第一次遇到这样的问题。
cout << "\nView switched to 'Default View
答案 0 :(得分:9)
您可以使用静态局部变量来防止多次打印:
void function()
{
static bool runOnce= true;
if(runOnce)
{
cout << //print stuff
runOnce = false;
}
... do other stuff
}
或者一个C ++ 11花式裤子使用lambda回答,这个lambda更短但可读性更低:
using namespace std;
void function()
{
static const auto runOnce = [] { cout << "Hello" << endl; return true;}();
}
int main()
{
function();
function();
function();
return 0;
}
结果:
Hello