C++ 一文搞懂输入流、输出流

当涉及到输入流输出流时,我们通常是指数据程序外部源(例如文件、控制台等)之间的流动

输入流(Input Stream) 是用于从外部源(例如文件、键盘输入等)读取数据到程序中的流。输入流提供了一种逐个字符或逐个数据块的方式,将外部数据传输到程序中进行处理。例如,从键盘读取用户输入、从文件中读取数据等都是使用输入流。

输出流(Output Stream) 是用于将程序中的数据发送到外部源(例如文件、屏幕输出等)的流。输出流提供了一种逐个字符或逐个数据块的方式,将程序中的数据传输到外部进行显示、保存等操作。例如,将数据输出到文件、将数据打印到屏幕上等都是使用输出流。

在C++中,输入流和输出流是通过流对象来表示的,主要包括以下几种类:

  • std::ifstream:用于从文件读取数据的输入流类。
  • std::istringstream:用于从字符串读取数据的输入流类。
  • std::cin:标准输入流,用于从键盘读取数据。
  • std::ofstream:用于向文件写入数据的输出流类。
  • std::ostringstream:用于将数据写入字符串的输出流类。
  • std::cout:标准输出流,用于将数据输出到屏幕。

使用输入流时,我们可以使用相应的输入流对象来读取数据,如 >> 运算符从输入流中提取数据到变量中。

使用输出流时,我们可以使用相应的输出流对象来将数据写入到流中,如 << 运算符将数据从变量输出到输出流中。

以下是一个简单的示例,演示了输入流和输出流的基本用法:

#include <iostream>
#include <fstream>
#include <string>

int main() {
    
    
    // 输入流示例
    int num;
    std::cout << "Enter a number: ";
    std::cin >> num;
    std::cout << "You entered: " << num << std::endl;

    std::ifstream inputFile("input.txt");
    std::string line;
    if (inputFile.is_open()) {
    
    
        while (std::getline(inputFile, line)) {
    
    
            std::cout << line << std::endl;
        }
        inputFile.close();
    }

    // 输出流示例
    std::ofstream outputFile("output.txt");
    if (outputFile.is_open()) {
    
    
        outputFile << "Hello, world!" << std::endl;
        outputFile << "This is a line of text." << std::endl;
        outputFile.close();
    }

    std::cout << "Data written to output.txt" << std::endl;

    return 0;
}

在示例中,我们使用了 std::cin 从用户输入读取一个数字,并使用 std::cout 将其打印到屏幕上。同时,我们使用 std::ifstream 从名为 “input.txt” 的文件中读取

技巧提示:(重在理解流的一个概念)

当涉及到输入流和输出流时,可以使用以下简单的规则来帮助理解它们的区别:

  1. 方向: 输入流用于从外部源(如文件、键盘)读取数据到程序中,而输出流用于将程序中的数据发送到外部源(如文件、屏幕)。

  2. 数据流动: 输入流按顺序读取数据,逐个提取数据并传递给程序进行处理。输出流按顺序写入数据,逐个接收程序中的数据并发送到外部进行显示、保存等操作。

  3. 类别和命名: C++中为了区分不同类型的输入流和输出流,分别使用了不同的类别和命名规则。例如,std::ifstream 表示输入文件流,std::cin 表示标准输入流;std::ofstream 表示输出文件流,std::cout 表示标准输出流。

  4. 读取和写入操作符: 输入流使用读取操作符 >> 从流中提取数据到程序变量中;输出流使用写入操作符 << 将程序变量的数据写入到流中。

记住这些基本原则和使用方法,将有助于你理解和使用输入流和输出流的概念。

最重要的是实际上的实践。通过编写简单的程序,使用输入流从外部读取数据,使用输出流将数据写入外部,并观察数据在程序和外部之间的流动,可以加深你对输入流和输出流的理解。

希望这些简单的指导能够帮助你更好地理解输入流输出流的区别。

猜你喜欢

转载自blog.csdn.net/qq_44859843/article/details/130928744