c++ - C 风格、C++ 流或 Win32 API 文件 I/O?

标签 c++ winapi file-io

我读了C++ Streams vs. C-style IO? (在其他页面中)尝试帮助我决定在我正在处理的项目中以何种方式实现某些文件 IO。

背景 我是 C++ 和 Windows 编程的新手,我一直在 C 和命令行应用程序中工作。提前为这个问题的 n00b-ness 道歉。

问题 我想读取一个文本文件,处理内容并输出到另一个(新)文本文件。我在 Win32 环境中工作(这在可预见的 future 不会改变)并且正在编写应用程序以通过 _T 样式宏识别 Unicode。 “处理”可能包括插入/附加/删除文本行,最多 128 个字符。

问题 我宁愿写一些健壮的东西,所以 I/O 错误处理是一个考虑因素。我认为我需要远离 C 风格的文件 I/O,除非是为了简化代码和类型检查——即在更面向对象的 POV 中处理它。与 C++ 流函数(如果有)相比,使用 Win32 API 函数有什么优势?你能为这两种方法推荐一本好的入门书吗? (我的谷歌搜索给我留下了一点信息重载)

非常感谢

最佳答案

What are the advantages of using Win32 API functions over the C++ stream functions (if any)?

  1. 速度
  2. 能够使用重叠 I/O 在没有线程的情况下同时处理多个操作(以及同步的复杂性)
  3. 速度
  4. 更具体的错误代码
  5. 速度
  6. 速度
  7. 低依赖足迹(与 MSVC++ 7.x、8.0、9.0、10.0 和可能的大多数其他供应商相比)
  8. 速度

关于c++ - C 风格、C++ 流或 Win32 API 文件 I/O?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6218667/

相关文章:

c++ - 散列 std::vector 独立于项目顺序

c++ - 在 Qt 中打印文本编辑

c++ - Windows - 了解外部 Window 移动

c - 搜索指针会发生什么?

c - 在C中获取文件最后一行的字符

复制文件跳过前 n 行和后 m 行

c++ - constexpr 循环内 std::array 的值初始化是否有效?

c++ - 来自库的不完整类型的 shared_ptr

c++ - 尝试打印时堆损坏

c++ - 在新目录上设置可见列