C++ 有std::endl
. 有谁知道 C 中有什么可以用来做这个的吗?
问问题
13013 次
3 回答
11
std::endl
具有打印换行符'\n'
然后刷新输出流的效果。
如果您要打印到标准输出,C 等效项将是:
putchar('\n');
fflush(stdout);
但在大多数情况下,这fflush
是不必要的。
请注意,std::endl
它不具有提供独立于平台的行结尾的目的。该字符'\n'
已经是一个独立于平台的行结尾。当写入文本流时,它将被转换为平台使用的任何行结尾(\r\n
对于 Windows,仅\n
对于 Unix,等等)。
于 2012-09-16T10:04:11.717 回答
6
#include <stdio.h>
putchar ('\n'); /* To the stdout stream. */
printf ("\n"); /* Ditto. */
对于任意流fp
,
fputc (fp, '\n');
这应该适用于行缓冲和非缓冲流。fflush(NULL)
如果您想立即查看结果,则需要完全缓冲的流。那么哪个是哪个?C99 标准的血腥细节:
最初打开时,标准错误流没有完全缓冲;当且仅当可以确定流不引用交互式设备时,标准输入和标准输出流才被完全缓冲。
于 2012-09-16T10:02:30.380 回答
2
std::endl
刷新流,但在 C 中打印换行符不会这样做。所以你必须使用fflush
.
于 2012-09-16T10:04:59.227 回答