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