很明显,将iostream/fstream与stdio和C风格的i/o处理相结合并不是一个很好的实践。
用printf(...)打印一行,用std:cout << ...打印另一行,或者用FILE*读取文件,然后用ofstream编写,都很难看,可能会造成混乱,只是自找麻烦。
然而,这种做法被拒绝的唯一原因基本上只是一个文体/可读性的论点,还是有更深层次的技术原因?
我之所以这样问,是因为我需要在代码的一小部分中使用mmap,做一些低级的寄存器处理。mmap使用c样式的文件描述符。但是,在剩下的代码中,我想使用C++流路由来处理文件。
发布于 2016-04-20 07:55:06
技术上的危险在于性能下降,因为这两种输出方法不能单独缓冲。有ios_base::sync_with_stdio(bool)表示不需要这样的同步(例如,因为没有使用<cstdio> ),但是默认情况是缓慢和正确的。
https://stackoverflow.com/questions/36737058
复制相似问题