C++ 库特<<&引用;“文本”;仅在部分时间内显示
我学到了在cout语句末尾使用endl刷新缓冲区的艰难方法。我感到困惑的是,为什么endl有时是必要的。通常我能做到C++ 库特<<&引用;“文本”;仅在部分时间内显示,c++,buffer,flush,cout,C++,Buffer,Flush,Cout,我学到了在cout语句末尾使用endl刷新缓冲区的艰难方法。我感到困惑的是,为什么endl有时是必要的。通常我能做到 cout << "test"; cout当缓冲区达到一定长度或程序正常终止时,缓冲区被刷新。当缓冲区达到一定长度或程序正常终止时,缓冲区被刷新。缓冲区被自动刷新的时间和原因取决于您所使用的特定平台的实现者。您不应该对何时刷新缓冲区进行任何假设或猜测 如果要显示文本,只需添加std::endl.;) 自动刷新缓冲区的时间和原因取决于您所使用的特定平台的实现者。您不应该
cout << "test";
cout当缓冲区达到一定长度或程序正常终止时,缓冲区被刷新。当缓冲区达到一定长度或程序正常终止时,缓冲区被刷新。缓冲区被自动刷新的时间和原因取决于您所使用的特定平台的实现者。您不应该对何时刷新缓冲区进行任何假设或猜测
如果要显示文本,只需添加std::endl.;) 自动刷新缓冲区的时间和原因取决于您所使用的特定平台的实现者。您不应该对何时刷新缓冲区进行任何假设或猜测
如果要显示文本,只需添加std::endl.;) 如果我写cout>var;程序不会终止,而是等待输入var。但是,test1仍然显示。那么缓冲区是否达到了这个“特定长度”?你怎么知道那是什么?@gsingh2011我猜cin
会刷新缓冲区。毕竟,如果不显示之前的内容,您就无法输入。如果您想一想cin是做什么的,那么最好先将任何输出刷新到屏幕上。@gsingh2011:使用cin时,会刷新cout,以防止输入后写入代码等问题,反之亦然。缓冲区大小是实现细节,我不确定您是否可以查询它;程序不会终止,而是等待输入var。但是,test1仍然显示。那么缓冲区是否达到了这个“特定长度”?你怎么知道那是什么?@gsingh2011我猜cin
会刷新缓冲区。毕竟,如果不显示之前的内容,您就无法输入。如果您想一想cin是做什么的,那么最好先将任何输出刷新到屏幕上。@gsingh2011:使用cin时,会刷新cout,以防止输入后写入代码等问题,反之亦然。缓冲区大小是实现细节,我不确定您是否可以查询它。大多数库在换行符\n
处刷新,因此,如果以该字符终止,则不需要endl
。当然,如果不需要换行符,也可以使用flush
。大多数库在换行符\n
处刷新,因此如果终止时不需要endl
。当然,如果您不想换行,也可以使用flush
。