For the code, outputfile << *p << endl; Someone suggests: Don't use endl here; it is flushing output stream every time. Use plain '\n'. What's the difference of using "endl" and "\n" above? What's the meaning of flushing output stream? Isn't that what we want? Thanks!