Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 是全球C++;I/O对象等效还是使用C I/O流?_C++ - Fatal编程技术网

C++ 是全球C++;I/O对象等效还是使用C I/O流?

C++ 是全球C++;I/O对象等效还是使用C I/O流?,c++,C++,我正在浏览CPuPrISH关于C++ I/O库的信息,并对它进行了全面的了解,但是有一点是:例如,据说是 与标准C输出流stdout关联 这在技术上意味着什么?std::cout实际上是在使用stdout,还是仅仅意味着std::cout在功能上等同于stdout 在全局对象使用C流的情况下,为什么使用C流而不是C++ I/O库提供的流?< P>当你说“C”流时,这些都是操作系统传递给每个进程的标准流。 当一个进程被创建时,操作系统会创建几个低级别的“文件描述符”,以支持对它的输入和输出 这些底

我正在浏览CPuPrISH关于C++ I/O库的信息,并对它进行了全面的了解,但是有一点是:例如,据说是

与标准C输出流stdout关联

这在技术上意味着什么?std::cout实际上是在使用stdout,还是仅仅意味着std::cout在功能上等同于stdout

在全局对象使用C流的情况下,为什么使用C流而不是C++ I/O库提供的流?

< P>当你说“C”流时,这些都是操作系统传递给每个进程的标准流。 当一个进程被创建时,操作系统会创建几个低级别的“文件描述符”,以支持对它的输入和输出

这些底层标准输入/输出流是如何实现的,操作系统使用什么语言。在
C
语言编写之前,它们就已经存在于操作系统中

显然,“C”提供了通过
访问它们的权限,
C++
提供了通过
访问它们的权限

我认为说
C++
库使用“C”流可能有点误导。如果我们谈论的是标准C库,那么
C++
不太可能利用这些库(但需要与它们合作)

底层标准输入/输出流不是标准C的一部分,但它们与
C
语言有着悠久的历史,因为
C
是专门为编写操作系统而创建的,因此进程I/O的底层核心可能是
C
库(尽管它也可以是汇编语言或另一种语言)

例如,在
POSIX
系统上,有
C
库头用于访问不属于标准C的低级标准输入/输出流。这可能是为什么在链接文档中它们被称为
C
流的原因,但是标准io流的概念早于
C
语言i瑟夫


<标准> C和标准C++流是在操作系统提供的原始原语上添加抽象层,通常是在数字和字符串、字符编码等格式和转换之间。<代码> C <代码>和<代码> C++ >代码>,但这些东西有点不同。on、Understand、default和normal to think cout与标准输出相关。但它也意味着通过使用associated一词,关联可以改变。存在的事实可能会给你一个提示,说明它们是如何运作的(或者可能会让你更加困惑)哈哈。好吧,我知道。试试这个:cout只是一个流。这是一个到stdout流的快捷方式,因为使用stdout“设备”是很常见的。或者至少向控制台发送字符是很常见的,比如stdout。但它只是一个流,可以更改为任何流……从很多方面来说,它只是一个快捷方式。你为什么对此感到好奇实现细节?所以C是便于实际的I/O操作的?C++简单地利用C功能?为什么C++ I/O甚至还定义了自己的流类,如果它依赖于C/IO库的话?@ NICHLNSS我通过解释添加了更多的信息。使用iostream?
cout@Galik谢谢-这很有帮助。但是,它实际上是用C编写的stdio(但不是标准的一部分)这是负责实际的低级别I/O操作,而C++ I/O库提供了更高级的功能来控制STDIO的低级事物,因此标准C和C++流依赖STDIO。请进一步帮助我,如果你认为我可能仍然有点困惑-你看起来聪明:))@ NICHLNSS相当多。但也有一些混淆,因为
stdout
是一个
标准C
术语。这就是本·沃伊特告诉我的术语。
C
C++
都使用相同的底层标准输入和输出。这些是低级对象。在
POSIX
系统上,它们只是整数
0
1
。我不知道它们在Windows下是如何表示的。