【C++入门到精通】C++的IO流(输入输出流) [ C++入门 ]

2024-02-26 1445阅读

温馨提示:这篇文章已超过393天没有更新,请注意相关的内容是否还可用!

【C++入门到精通】C++的IO流(输入输出流) [ C++入门 ]

阅读导航

  • 引言
  • 一、C语言的输入与输出
  • 二、流是什么
  • 三、C++IO流
    • 1. C++标准IO流
      • (1)istream
      • (2)ostream
      • (3)iostream
      • (4)cin 和 cout
      • 2. C++文件IO流
        • (1)ifstream
        • (2)ofstream
        • (3)fstream
        • 四、stringstream的简单介绍
        • 温馨提示

          引言

          C++中的IO流(输入输出流)是程序与外部环境之间进行数据交互的重要手段。通过IO流,程序可以从外部读取数据或将数据输出到外部,实现了程序与用户、其他程序和设备之间的数据传输。C++标准库提供了丰富的IO流类和函数,通过这些类和函数,开发者能够方便地实现各种类型的IO操作。本文将介绍IO流的基本概念和相关类,讲解如何在C++程序中使用IO流实现输入输出操作,并给出相应的示例代码以说明其用法。同时,还将介绍一些常见的IO流操作技巧和使用注意事项,帮助读者更好地掌握和应用C++中的IO流机制。通过学习本文,读者将能够深入理解C++中的IO流,掌握IO流的使用方法,提高程序的输入输出效率和稳定性。

          一、C语言的输入与输出

          C语言中我们用到的最频繁的输入输出方式就是scanf ()与printf()。

          • scanf(): 从标准输入设备(键盘)读取数据,并将值存放在变量中。
          • printf(): 将指定的文字/字符串输出到标准输出设备(屏幕)。

            🚨🚨注意宽度输出和精度输出控制

            C语言借助了相应的缓冲区来进行输入与输出。如下图所示:

            【C++入门到精通】C++的IO流(输入输出流) [ C++入门 ]

            ⭕对输入输出缓冲区的理解:

            1. 可以屏蔽掉低级I/O的实现,低级I/O的实现依赖操作系统本身内核的实现,所以如果能够屏蔽这部分的差异,可以很容易写出可移植的程序。
            2. 可以使用这部分的内容实现“行”读取的行为,对于计算机而言是没有“行”这个概念,有了这部分,就可以定义“行”的概念,然后解析缓冲区的内容,返回一个“行”。

            二、流是什么

            “流”即是流动的意思,是物质从一处向另一处流动的过程,是对一种有序连续且具有方向性的数据( 其单位可以是bit,byte,packet )的抽象描述。

            C++中的流是一种抽象描述,用于表示数据从一个地方(输入设备)流向另一个地方(输出设备)的过程。它描述了数据以有序连续和具有方向性的方式流动的特性。在C++中,流被比喻为信息从外部输入设备(如键盘)向计算机内部(如内存)输入,或者从内存向外部输出设备(如显示器)输出的过程。为了实现这种流动,C++提供了I/O标准类库,其中的每个类都被称为流或流类,用于完成不同方面的输入输出功能。通过使用这些流类,我们可以实现数据的输入和输出操作,实现与外部环境的交互。

            🔴C++提供的I/O标准类库

            【C++入门到精通】C++的IO流(输入输出流) [ C++入门 ]

            三、C++IO流

            C++系统实现了一个庞大的类库,其中ios为基类,其他类都是直接或间接派生自ios类

            【C++入门到精通】C++的IO流(输入输出流) [ C++入门 ]

            1. C++标准IO流

            C++标准库提供了4个全局流对象cin、cout、cerr、clog,使用cout进行标准输出,即数据从内存流向控制台(显示器)。使用cin进行标准输入即数据通过键盘输入到程序中,同时C++标准库还提供了cerr用来进行标准错误的输出,以及clog进行日志的输出,从上图可以看出,cout、cerr、clog是ostream类的三个不同的对象,因此这三个对象现在基本没有区别,只是应用场景不同。

            【C++入门到精通】C++的IO流(输入输出流) [ C++入门 ]

            (1)istream

            istream 是输入流的基类,它提供了从外部读取数据的功能。常用的 istream 类有 istream, ifstream(从文件读取)和 istringstream(从字符串读取)。

            ⭕常用的 istream 函数包括:

            • get():从流中获取下一个字符并返回其 ASCII 值。
            • getline():从流中读取一行文本,并将其存储在指定的字符串变量中。
            • operator>>:从流中读取数据并将其存储在指定的变量中。

              例如:

              int num;
              std::cin >> num; // 从标准输入设备读取一个整数
              

              (2)ostream

              ostream 是输出流的基类,它提供了向外部写入数据的功能。常用的 ostream 类有 ostream, ofstream(写入到文件)和 ostringstream(写入到字符串)。

              ⭕常用的 ostream 函数包括:

              • put():向流中写入一个字符。
              • write():向流中写入指定长度的数据。
              • operator std::ifstream file("example.txt"); if (file.is_open()) { int num; while (file num) { std::cout std::cerr std::ofstream file("example.txt"); if (file.is_open()) { file std::cerr std::fstream file("example.txt", std::ios::in | std::ios::out); if (file.is_open()) { int num; while (file num) { std::cout std::cerr
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]