fstream,FILE之间的选择
作为一个C++的拥护者,我尽量多学习使用 ifstream, ofstream,并从中感受到了它的直观易用。而且其对于普通英文字符串输入输出的支持,体现出了C++语言的智慧。
但当你想打开Unicode编码的文件路径,当你想要输入Unicode编码中文字符,当你想要用wofstream输出二进制流的时候,你会发现,你对它的了解还不够,它并不总能像你想象那样工作。
之所以会产生这种结果,有两点原因:
- C++ locale默认是英文环境,英文环境会导致无法识别Unicode编码。
- fstream 的 opterator>> 操作符,其实是字符串操作符。有时候你会以为它可以帮你处理二进制流。当然fstream也支持二进制流操作,但是wfstream却必须以wchar_t的大小为单位流化,导致流化的数量必须写成 sizeof( int ) / 2.
- fstream接口操作多种多样,但容易引起bug,因为你不总是在处理文件,时间久了,会忘记fstream的一些重要特性。
- FILE接口操作统一,虽然有时对于简单功能,需要多写一些代码,但是简单统一,使得你总是很了解它,出错的概率较低。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: php统计中文个数
- 下一篇: 怎么进入dedecms的后台