通过文件操作流* 我刚刚浏览过一些C++代码,它使用文件*来使用“F”函数(FPEN、FSEDE、FLAAD等)来处理文件流。我相信这些都是由标准头cstdio提供的 这是否被认为是现代C++代码中过时的或不好的做法?我这样问是因为我还看到可以使用setg和tellg获取/设置ifstream对象的流的位置,我想知道这样做的好处是什么。这是一个“老习惯死硬”的C程序员的操作流方式还是在C++ C++代码中使用文件*和“F”函数仍然有一个有效的理由?< P> AFIK,在C++中,正确的方法是使用IFSt流。顾名思义,cstdio仅用于C兼容性 这两种方法都是正确的。< P> AfAIK,在C++中,正确的方法是使用IFFISH。顾名思义,cstdio仅用于C兼容性 这两者都是正确的。< P>它们是C兼容的,虽然在现代C++程序中没有什么可以阻止它们使用。 有些人倾向于喜欢C流,因为他们要么不喜欢C++流(在很多方面都是相当混乱的),要么他们认为C流更快。最后一点在几年前的许多实现中是有效的,但是在现代实现中,C++流通常会更快一些(这个语句是基于我在G++上的一些基准,YMMV)。

通过文件操作流* 我刚刚浏览过一些C++代码,它使用文件*来使用“F”函数(FPEN、FSEDE、FLAAD等)来处理文件流。我相信这些都是由标准头cstdio提供的 这是否被认为是现代C++代码中过时的或不好的做法?我这样问是因为我还看到可以使用setg和tellg获取/设置ifstream对象的流的位置,我想知道这样做的好处是什么。这是一个“老习惯死硬”的C程序员的操作流方式还是在C++ C++代码中使用文件*和“F”函数仍然有一个有效的理由?< P> AFIK,在C++中,正确的方法是使用IFSt流。顾名思义,cstdio仅用于C兼容性 这两种方法都是正确的。< P> AfAIK,在C++中,正确的方法是使用IFFISH。顾名思义,cstdio仅用于C兼容性 这两者都是正确的。< P>它们是C兼容的,虽然在现代C++程序中没有什么可以阻止它们使用。 有些人倾向于喜欢C流,因为他们要么不喜欢C++流(在很多方面都是相当混乱的),要么他们认为C流更快。最后一点在几年前的许多实现中是有效的,但是在现代实现中,C++流通常会更快一些(这个语句是基于我在G++上的一些基准,YMMV)。,c++,C++,尽管如此,C流仍然存在一个重要的问题:因为它们是C的东西,并且不是用类来实现的,所以在将它们与异常一起使用时必须格外小心,否则可能会泄漏文件句柄;这个问题与C++文件流无关,因为它们被封装在类中,当异常导致堆栈展开时调用析构函数,因此防止文件句柄泄漏。 它们有C兼容性,虽然在现代C++程序中没有什么阻止您使用它们。 有些人倾向于喜欢C流,因为他们要么不喜欢C++流(在很多方面都是相当混乱的),要么他们认为C流更快。最后一点在几年前的许多实现中是有效的,但是在现代实现中,C++流通常会更快一些(这

尽管如此,C流仍然存在一个重要的问题:因为它们是C的东西,并且不是用类来实现的,所以在将它们与异常一起使用时必须格外小心,否则可能会泄漏文件句柄;这个问题与C++文件流无关,因为它们被封装在类中,当异常导致堆栈展开时调用析构函数,因此防止文件句柄泄漏。

它们有C兼容性,虽然在现代C++程序中没有什么阻止您使用它们。

有些人倾向于喜欢C流,因为他们要么不喜欢C++流(在很多方面都是相当混乱的),要么他们认为C流更快。最后一点在几年前的许多实现中是有效的,但是在现代实现中,C++流通常会更快一些(这个语句是基于我在G++上的一些基准,YMMV)。
尽管如此,C流仍然存在一个重要的问题:因为它们是C的东西,并且不是用类来实现的,所以在将它们与异常一起使用时必须格外小心,否则可能会泄漏文件句柄;这个问题与C++文件流无关,因为它们被封装在类中,当异常导致堆栈展开时调用析构函数,因此防止文件句柄泄漏。C++中的

您通常更喜欢在流上操作。将文件切换到网络流(或任何其他类型的流)时,会使工作更轻松


CSTDIO,正如上面所说的,是C语言兼容性的一个方面,也是直接访问的路径,在人们不喜欢流的开销的代码中经常会发现。C++中的

< P>你更喜欢在流上操作。将文件切换到网络流(或任何其他类型的流)时,会使工作更轻松

CSTDIO,如C++所言,是直接访问的路径,在人们不喜欢流的代码中经常被发现。 iostream库以一般方式提供输入和输出,并提供 类型安全,并且比cstdio更不容易出错。还有iostream 库提供了可扩展性,允许您继承和重载 除了标准类型之外,您自己的类型还可以流化

然而,有些人认为iostream库是 过于冗长,也有人使用cstdio库,因为它是最熟悉的 对他们来说

尽管存在一些使用cstdio的有效点。大多数iostream实现 在性能方面比cstdio慢,并且已经进行了测试 显示
cout
printf

<>如果速度是关键的,或者是混合的C++和C代码基础,那可能是 选择cstdio库的参数。否则,C++的标准IO是 IOFSWOR/P>P>C++,在大多数情况下都应使用IoScript库。

iostream库以一般方式提供输入和输出,并提供 类型安全,并且比cstdio更不容易出错。还有iostream 库提供了可扩展性,允许您继承和重载 除了标准类型之外,您自己的类型还可以流化

然而,有些人认为iostream库是 过于冗长,也有人使用cstdio库,因为它是最熟悉的 对他们来说

尽管存在一些使用cstdio的有效点。大多数iostream实现 在性能方面比cstdio慢,并且已经进行了测试 显示
cout
printf

<>如果速度是关键的,或者是混合的C++和C代码基础,那可能是 选择cstdio库的参数。否则,C++的标准IO是
iostream

这是非常主观的。流类并不是C++最优秀的时刻。但唯一重要的是你的团队在哪些方面实现了标准化。如果你是一个由一个人组成的团队,那么你可以选择。我确实有选择的余地,因为我是一个人工作。我没有看到太多的C代码,所以我不认识它。这是非常主观的。流类并不是C++最优秀的时刻。但唯一重要的是你的团队在哪些方面实现了标准化。如果你是一个由一个人组成的团队,那么你可以选择。我确实有选择的余地,因为我是一个人工作。我没有见过很多C代码,所以我没有认识到它。我从一开始就学习C++,而且从来没有使用过C流,据我所知,它很难。