我可以隐式刷新数据吗?
Can I flush data implicitly?
有没有办法将数据隐式刷新到输出流?
#include <iostream>
#include <fstream>
using namespace std;
#define log logstream
int main()
{
ofstream logstream("test.log");
log << "Test1" << 123 << endl; // explicitly flushed
log << "Test2" << 123; // ?
// Test2 not written, yet...
cout << "Check log file..." << endl;
int tmp;
cin >> tmp;
}
我希望每次都能够在不指定 << endl
操纵器的情况下进行登录。
您可以使用 std::unitbuf
.
log << std::unitbuf;
然后每次插入时都会进行刷新。
有没有办法将数据隐式刷新到输出流?
#include <iostream>
#include <fstream>
using namespace std;
#define log logstream
int main()
{
ofstream logstream("test.log");
log << "Test1" << 123 << endl; // explicitly flushed
log << "Test2" << 123; // ?
// Test2 not written, yet...
cout << "Check log file..." << endl;
int tmp;
cin >> tmp;
}
我希望每次都能够在不指定 << endl
操纵器的情况下进行登录。
您可以使用 std::unitbuf
.
log << std::unitbuf;
然后每次插入时都会进行刷新。