当前位置:  开发笔记 > 编程语言 > 正文

什么时候使用c ++ iostream优于ReadFile,WriteFile,fprintf等...?

如何解决《什么时候使用c++iostream优于ReadFile,WriteFile,fprintf等?》经验,为你挑选了2个好方法。

我发现在c ++中使用流而不是像ReadFile,WriteFile等甚至fprintf这样的windows函数都非常容易.什么时候使用溪流不好?什么时候使用溪流好?使用流是否安全?为什么许多程序员不使用流?

这只是我一直想知道的事情,也许你可以放下一些智慧.



1> Jerry Coffin..:

流通常非常安全.在某些情况下,它们可能很慢和/或笨拙.缓慢,主要是因为它们在您的代码和操作系统之间施加了一些额外的层,并且在错误的情况下这些层会增加开销.笨拙主要是与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等等,也允许内存映射文件和iostreams不支持的重叠读写等多种内容.如果这种情况让你充分利用这些,那么iostream往往不具备竞争力.


为了那些通常不使用它的人的利益,这篇文章中的"i18n"意味着"国际化".在该单词的'i'和'n'之间有18个字符,因此是"i18n".

2> luke..:

什么时候使用溪流不好?

Streams不保证是线程安全的.很容易想到一个没有同步就无法使用流的情况.

流对象通常非常"沉重".对于低内存或嵌入式环境,它们可能太重.

什么时候使用溪流好?

一般来说.

使用流是否安全?

是的,但是在异步共享流时你必须要小心.

为什么许多程序员不使用流?

首选,风格或他们首先学习不同的方法(或不同的语言).我发现很多旧的"c ++"在线例子都是用C语言编写的,更喜欢printf到cout.

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有