在重复调用的函数中,使用cout只打印一次语句
Using cout to print a statement only once in a function that is repeatedly called
在重复调用或更新的函数中,是否可以在窗口中使用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
}
或者使用lambda来回答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
相关文章:
- 有一个打印语句的函数是一种糟糕的编程实践吗
- 为什么无论输入如何,所有 if-else 语句都会打印?
- 为什么这个 IF 语句在循环内不打印
- 二叉搜索树使用最常用的节点来打印出某些语句
- 自动打印出哪个 EXPECT 语句失败
- 我的 if 语句打印在我的 while 循环中的每个 if 语句上,无论它是否为假
- 所有类实例方法的打印语句最后都在打印吗?
- 如何在没有打印语句的情况下报告用户输入错误
- 面临在 if 语句之外打印变量数据的问题 完成使用 Qt 编程
- 为什么返回语句和打印语句返回不同的答案?
- 仅禁止显示实际的 make 命令和最终打印语句
- 我的 for 循环之后的代码不起作用,for 循环后的打印语句不会被打印
- C++ to_string函数根据额外打印语句的先见之明,为浮点数和整数转换提供不同的结果
- 删除"超出矢量误差范围"的打印语句后输出不同的根本原因
- Arduino 项目需要打印语句才能工作
- 多线程程序只适用于打印语句
- 高斯的FFT;不确定在何处/如何插入值的打印语句
- Clang中漂亮的打印语句到字符串
- 程序不起作用,添加打印语句它有效,为什么?
- 有人能解释一下这个特殊的打印语句在for循环中做了什么吗