没错就是这个我开始出错的endl
C++中endl是一个被称为操纵符(manipulator)的特殊值。
使用的效果和C中的\n 表面上是一样的。
endl的效果是结束当前行,并将与设备关联的缓冲区(buffer)中的内容刷到设备中。
而C中\n好像没有这个用处、只有换行作用。
关于endl的好处,暂时说不出所以然来,引用[C++primer,5E]中的一句话来感受一下。
“程序员常常在调试时添加打印语句。这类语句应该保证‘一直’刷新流。否则,如果程序崩溃,输出可能还停留在缓冲区中,从而导致关于程序崩溃位置的错误推断”