stdio vs iostream

当我在互联网上搜索这两个库的区别时,大家都说<iostream>是C ++的标准I / O库, <cstdio>是C的。我的教授说cin>>cout<<好的功能,如果我们使用cin>>很多时候我们的应用程序肯定会崩溃。 他还表示, stdio提供比iostream快3倍的输入和输出。 不过,我更喜欢使用iostream因为它更方便,而且我不知道我的教授是否正确。

那么你建议我使用什么?


使用iostream不应该让你的程序崩溃。 它可能会很慢,但这只是因为它试图与stdio进行互操作。 该同步可以关闭1。 iostream是获得输入的惯用C ++方法,在使用C ++时,我建议在大多数情况下将它用于stdio函数。

1使用std::ios::sync_with_stdio(false);


在C ++中使用流和在C中使用stdio.h是的,数据流有点慢,但是这些毫秒数呢? 用户输入很少是应用程序的瓶颈。

如果流正确使用,并且您的编译器/运行时库可以,您的应用程序不会崩溃。

但是,如果你有使用cstdio函数的好的,可解释的理由,那么在C ++中使用它们也是完全合法的。


除非I / O的性能非常重要,否则请使用任何能够使程序最清晰(最容易阅读)的程序。

在我编写的大量程序中,只有少数程序需要特别处理“I / O速度有多快” - 而std::stream函数的大部分问题都必须与输入的实际解析[以及与stdio同步] - 如果你正在阅读,比如说浮点数,将很难编写你自己的[接受std::stream允许的全部格式]的版本。

如果I / O性能真的很重要,那么使用std::stream::readstd::stream::write可能是解决方案,但在大多数情况下,最好的性能来自使用不可移植的mmapMapViewOfFile接口,将文件内容直接从文件系统映射到应用程序的虚拟内存。 这节省了复制数据处理所花费的时间,并且使其更快一些。

链接地址: http://www.djcxy.com/p/31523.html

上一篇: stdio vs iostream

下一篇: Is std::ifstream significantly slower than FILE?