缓冲区没有刷新
单个流多用途时
文件的流输出和输入一起做,读先前写的数据出现问题。向一个文件按 4 字节写了个 int 类型数据,然后读那个 int 值,结果报未定义类型错误。
原因是在读之前,没有刷新文件流,直接关闭那个输出流也可以——关闭流时会自动刷新。
当时这个弄了将近一天,当 cullet 同学提出要先关闭流时,我还是不相信问题在这。我的具体错误推断忘了,大概想法是:刚在书上看到,当同一个流用做多种事时,才需要在没次他用之前关闭先前的,并回复到 good 状态;而我的是两个流各司其职。
std::cout 没有输出
如下代码让程序阻塞了:1
std::cout<<"i love u, XXX";
虽有其他线程在运行,但没跟这个线程交互。当时程序阻塞,还好这种经验有点,马上就找到问题了。应该刷新下缓冲区:1
std::cout<<"i love u, XXX"<<std::endl;