gpt4 book ai didi

c++ - 什么时候使用 c++ iostreams 而不是 ReadFile、WriteFile、fprintf 等...?

转载 作者:可可西里 更新时间:2023-11-01 16:57:09 26 4
gpt4 key购买 nike

我发现在 C++ 中使用流比使用 ReadFile、WriteFile 等 Windows 函数甚至 fprintf 更容易。什么时候使用流不好?什么时候使用流比较好?使用流安全吗?为什么很多程序员不使用流?

这正是我一直想知道的事情,也许你可以分享一些智慧。

最佳答案

流通常很安全。在某些情况下,它们可能会很慢和/或笨拙。慢,主要是因为它们在你的代码和操作系统之间强加了一些额外的层,在错误的情况下,这些层会增加开销。笨拙主要是与 C 的 printf 相比,而不是直接使用 WriteFile 之类的东西(它根本不直接支持格式化)。但是,例如,请考虑:

printf("%2.2x", ch);` 

std::cout << std::hex << std::setw(2) << std::setprecision(2) << std::setfill('0') << ch; 
std::cout << setfill(' ');

然后考虑这样一个事实,如果您关心 i18n,printf 正在使用一个易于从外部源读取的字符串,其中 C++ 流将所有格式嵌入到代码,因此几乎任何格式更改都需要重写代码、重新编译和重新链接。

CreateFile、ReadFile 等还允许一些 iostream 根本不支持的事情,例如内存映射文件和重叠读写。如果情况允许您充分利用这些,iostream 通常不会具有竞争力。

关于c++ - 什么时候使用 c++ iostreams 而不是 ReadFile、WriteFile、fprintf 等...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2111593/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com