问题标签 [endl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
386 浏览

c++ - 当我添加语句时,C++ 中的错误结果输出

3 * (n // 2)我尝试在一次遍历中找到数组中的最小值和最大值(大小为 n)使用次数比较。这是我的代码:

为了测试我的代码,我在我的代码中添加了一些语句,比如

std :: cout << *(item.begin()) << " , " << *( item.begin() + 1) << std :: endl;

这是我无法弄清楚的一点。当我添加这个时,结果是错误的。如果,我清除它,它工作得很好。以下是错误的结果图像:

在此处输入图像描述

0 投票
2 回答
219 浏览

c++ - std::endl 不是多余的吗?

在以下情况下会发生刷新:

  • 标准::cerr
  • 标准::cin
  • 程序终止
  • 在许多实现中,标准输出是行缓冲的,这意味着“\n”无论如何都会刷新

所以似乎在大多数常规程序中,std::endl 基本上是不必要的,但它几乎无处不在。

0 投票
2 回答
2885 浏览

c++ - endl 操纵器在哪里定义

我们知道这endl是操纵器,它在内部放入'\n'缓冲区,然后刷新缓冲区。在哪里endl定义?什么是endl宏或函数或变量或类或对象?如何定义自己的endl操纵器?

0 投票
3 回答
2224 浏览

c++ - 支持 __LINE__ 宏等的 C++ 风格 Logger

我想制作一个可以像 一样使用的记录器std::cout,但我想记录一些额外的数据,例如日期、时间、、,__LINE__并且__func__应该__FILE__自动保存到文件中。

例子

预期产出

解决方案不足

为此,我必须将诸如__LINE__直接之类的宏放在我调用记录器的行中,否则宏将无法正常工作。我发现我可以std::endl用我的宏替换,它会像这样执行这个黑魔法:

该宏logendl使用我的ToolLogger类中的静态变量来保存 的值__LINE____func__并在__FILE__以后需要。所以实际使用记录器将如下所示:

在课堂上,我必须重载operator<<才能让它工作,我需要其中两个。一个用于取正常值,如std::stringor int,另一个用于取std::endl操纵器。这是我班上最重要的事情:

问题

这个解决方案的问题是我可以通过两种方式使用我的记录器:

所以实际上我需要operator<<从我的类中删除带有std::endl机械手的类,并以其他方式解决它,但该怎么做呢?我正在考虑将宏更改std::endllogendl其他自定义操纵器,然后这个自定义操纵器将完成实际正在执行的工作operator<<,但我不知道该怎么做。我正在寻找其他解决方案,有什么建议吗?

0 投票
0 回答
362 浏览

python - C++ 输出流未用 endl 刷新并且执行停止

cout我有一个包含多个语句的 C++ 程序。我确保它们都以endl. 我的问题是程序很少停止,直到用户按下 Enter 键(所以我假设输出缓冲区并不总是按应有的方式刷新)。按回车键恢复程序执行。这很成问题,因为我的程序需要几个小时才能执行,所以我不能一直按 Enter!请注意,有时程序会在一分钟后停止,而其他时间会在一个多小时后停止。

这是一个小代码片段:

请注意,我通过嵌入 Python 使用 Theano,并且我的 Python 代码还包含打印语句。我的 Python 代码只调用 print,而不是sys.stdout.flush()在每次打印之后调用。但是,在 Python 生成的打印语句之后程序执行挂起的情况很少见。我错过了什么明显的东西吗?我应该sys.stdout.flush()在 Python 代码中调用吗?不幸的是,我无法提供更多代码,因为我的程序由几十个类组成。

[编辑] 当程序挂起时,我用调试器暂停了程序,并且没有可显示的源。调用堆栈是: 在此处输入图像描述

似乎有一个线程正在等待。但是,我自己并没有设置这些线程。它们要么由 Cuda 生成,要么由我也在使用的 Havok 物理引擎生成。我会调查的。

0 投票
2 回答
1386 浏览

c++ - 符号 endl 和 cout 无法解析

我已经从我正在阅读的一本书中编写了这段代码,但我的编译器警告说符号 cout 和 endl 无法解析。这是为什么。

0 投票
1 回答
707 浏览

c++ - C++ cout.endl() 清除缓冲区,cout.flush() 不清除

问题出在我正在使用的 IDE 中 - CLion 1.2.4 在其自己的输出窗口中给出了不正确的输出,已解决。

以下代码在使用大于 ~1000 的向量时给出重复输出,例如:

泡泡0.265596泡泡0.2655960.171889泡泡0.2655960.1718890.265644外壳000

如果我在每次输出后调用 endl ,一切似乎都很好:

气泡
0
0.015626
0.015628
外壳
0
0
0

但是当我尝试使用 .flush() 清除缓冲区时,我得到了相同的重复输出。

0 投票
2 回答
71 浏览

c++ - 在 GNU g++ 4.9.2 中重载 endl 编译问题

我在使用 GNU g++ 4.9.2 编译以下代码片段时遇到问题(用于在 g++ 2.95.3 中正常编译)

错误如下:

请指导/帮助。

0 投票
1 回答
66 浏览

c++ - 尽管实现了专用的非模板函数,但 std::endl 不适用于重载 operator<<

我有一些Logging::Logger具有以下功能的类:

以及以下代码:

尽管所有运算符似乎都已实现,但我收到以下错误:

错误 C2678:二进制“<<”:未找到采用“const Logging::Logger”类型的左侧操作数的运算符(或没有可接受的转换)

当然,如果endl一切正常。

我看过以下答案:

重载 operator<< 时 std::endl 的类型未知

我错过了什么?

0 投票
1 回答
879 浏览

c++ - 如果没有 std::flush 则发生分段错误

这个问题已经有一些方法了。¹ ² ³

但是这个就完全不一样了!如果我注释掉该std::flush行,则会发生 Segfault,但如果我添加此行,则不会发生分段错误!

我也试过gdb;我在ROS中使用此函数和调试技术并使用 -g 选项进行编译,但它不打印函数名称

  • 找了LENGTH_INDEXstm_buf_t[]有ok。

并且; 如果我std::cout << std::flush;从另一个地方调用这个函数,它也会处理 Segfault!

我的下一个方法是什么?