0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C++的输入流和输出流介绍

jf_78858299 来源:QStack 作者:月下西楼 2023-04-30 17:58 次阅读

背景

C++的输入流和输出流是C++标准库中的两个重要的流类,分别用于输入和输出数据。在本篇博客中,我们将详细介绍C++的输入流和输出流,包括流的概念、流的类型、流的操作和流的应用等方面。

什么是流

在C++中,流是一种抽象的数据类型,用于表示数据的输入和输出。流可以是文件、键盘、屏幕、网络等数据源或数据目的地。流的输入和输出是以字符为单位进行的,可以是字符、整数、浮点数、字符串等数据类型。

C++标准库中提供了两个重要的流类:输入流和输出流。输入流用于从数据源中读取数据,输出流用于向数据目的地中写入数据。输入流和输出流都是基于流缓冲区的,可以提高数据的读写效率。

流的分类

在C++中,流可以分为两种类型:文本流和二进制流。文本流是以文本形式读写数据,可以读写字符、字符串、整数、浮点数等数据类型。二进制流是以二进制形式读写数据,可以读写任意类型的数据,包括结构体、数组、指针等数据类型。

C++标准库中提供了多种流类,包括:

  • istream:输入流类,用于从数据源中读取数据。
  • ostream:输出流类,用于向数据目的地中写入数据。
  • ifstream:文件输入流类,用于从文件中读取数据。
  • ofstream:文件输出流类,用于向文件中写入数据。
  • fstream:文件流类,既可以读取文件,也可以写入文件。
  • stringstream:字符串流类,用于读写字符串。
  • istringstream:字符串输入流类,用于从字符串中读取数据。
  • ostringstream:字符串输出流类,用于向字符串中写入数据。

流的操作

在C++中,流的操作包括输入操作和输出操作。输入操作用于从流中读取数据,输出操作用于向流中写入数据。流的输入和输出操作都是以运算符的形式进行的,包括:

  • 输入运算符(>>):用于从流中读取数据。
  • 输出运算符(<<):用于向流中写入数据。 例如,下面的代码演示了如何使用输入流和输出流读写数据:
#include 
#include 
using namespace std;

int main() {
    int x, y;
    ofstream fout("data.txt");
    fout << 123 << " " << 456 << endl;
    fout.close();
    ifstream fin("data.txt");
    fin >> x >> y;
    cout << x << " " << y << endl;
    fin.close();
    return 0;
}

在这个例子中,首先使用ofstream类创建了一个文件输出流,向文件中写入了两个整数。然后使用ifstream类创建了一个文件输入流,从文件中读取了两个整数,并打印出来。

标准输入输出流

标准输入输出流是C++中最常用的流类,用于从键盘读取输入和向屏幕输出数据。在C++中,标准输入输出流分别对应于cin和cout对象。cin对象用于从键盘读取输入,cout对象用于向屏幕输出数据。例如:

#include 
using namespace std;

int main() {
    int num;
    cout << "请输入一个整数:";
    cin >> num;
    cout << "您输入的整数是:" << num << endl;
    return 0;
}

在这个例子中,我们使用了cin对象从键盘读取输入,使用了cout对象向屏幕输出数据。

文件输入输出流

文件输入输出流用于从文件中读取数据或向文件中写入数据。在C++中,文件输入输出流分别对应于ifstream和ofstream类。ifstream类用于从文件中读取数据,ofstream类用于向文件中写入数据。例如:

#include 
#include 
using namespace std;

int main() {
    ofstream outfile("example.txt");
    outfile << "Hello, World!" << endl;
    outfile.close();

    ifstream infile("example.txt");
    string content;
    getline(infile, content);
    cout << content << endl;
    infile.close();

    return 0;
}

在这个例子中,我们使用了ofstream类向文件中写入数据,使用了ifstream类从文件中读取数据。

字符串流

字符串流用于将数据读取到字符串中或将字符串写入到流中。在C++中,字符串流分别对应于istringstream和ostringstream类。istringstream类用于将数据读取到字符串中,ostringstream类用于将字符串写入到流中。例如:

#include 
#include 
using namespace std;

int main() {
    int num = 0;
    string content = "您输入的整数是:123";
    istringstream iss(content);
    string str;
    iss >> str;
    iss >> num;
    cout << str << " " << num << endl;
    return 0;
}

在这个例子中,我们使用了istringstream类将字符串中的数据读取到变量中。首先,我们定义了一个int类型的变量num,并将其初始化为0。然后,我们定义了一个字符串流对象iss,并将字符串content传入其中。接着,我们定义了一个string类型的变量str,并使用iss对象从字符串中读取第一个单词“您输入的整数是:”。最后,我们使用iss对象从字符串中读取第二个单词“123”,并将其赋值给num变量。最终,我们使用cout输出str和num的值。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C++
    C++
    +关注

    关注

    21

    文章

    2066

    浏览量

    72900
  • 数据类型
    +关注

    关注

    0

    文章

    228

    浏览量

    13499
  • 数组
    +关注

    关注

    1

    文章

    409

    浏览量

    25595
收藏 人收藏

    评论

    相关推荐

    [5.4.1]--输入流概述

    C++
    jf_75936199
    发布于 :2023年02月24日 17:04:00

    [5.4.2]--输入流应用举例

    C++
    jf_75936199
    发布于 :2023年02月24日 17:04:42

    [5.5.1]--输入输出

    C++
    jf_75936199
    发布于 :2023年02月24日 17:06:05

    _C_标准输入流_CIN__第1节

    函数C++
    充八万
    发布于 :2023年08月11日 11:27:28

    【好资料系列】C++实验 类和对象——学生基本信息输入输出

    C++实验类和对象——学生基本信息输入输出.doc
    发表于 08-05 20:48

    C++笔记003:C++从一个小程序开始

    熟悉的对这个世界的问候:hello world!我依旧输出这样一句问候!在Hello.cpp文件中输入内容:#include"iostream"//包含C++的头文件
    发表于 03-05 12:51

    C++笔记005:用面向过程和面向对象方法求解圆形面积

    键盘输入的内容流到了某某某中!面向过程程序比较简单,只要有一些C语言的基础,加上对C++输入输出就可以了!第二,面向对象计算圆的面积面向对
    发表于 03-05 12:59

    C语言到C++的转变并不难!看完就懂了

    输入流。和C语言中的scanf用法类似,只是它用起来更为方便(大多数情况下),不需要区分不同的类型用不同的写法,所有类型只需要用cin >> (变量名)就可以了。第14行
    发表于 08-12 15:54

    C++实验 类和对象——学生基本信息输入输出

    C++实验 类和对象——学生基本信息输入输出
    发表于 12-30 14:50 0次下载

    C++输入/输出

    C++输入/输出流类库是用派生方法建立起的,它有2个平行的基类,streambuf和ios。其他的流类都是从这两个基类直接或间接派生的。
    发表于 02-26 14:07 802次阅读

    C++程序设计教程之输入输出流的详细资料说明

    本文档详细介绍的是C++程序设计教程之输入输出流的详细资料说明主要内容包括了:1. C++输入输出
    发表于 03-14 16:39 8次下载
    <b class='flag-5'>C++</b>程序设计教程之<b class='flag-5'>输入输出</b>流的详细资料说明

    图文详解:C++输出输入

    图文详解:C++输出输入
    的头像 发表于 06-29 14:53 3118次阅读
    图文详解:<b class='flag-5'>C++</b>的<b class='flag-5'>输出</b><b class='flag-5'>输入</b>

    C++输入输出的真实面目

    C++输入输出C++里std::cin、std::cout、std::cerr和std::endl分别是标准输入、标准
    的头像 发表于 09-29 15:22 1530次阅读

    几种常用Reader输入流的使用方式

    上次聊到了 java 的字节流 InputStream,今天来看看它的好朋友 Reader 字符流。 Reader java 中的 IO 输入流不是只有 InputStream 还有按字符输入
    的头像 发表于 10-10 15:46 287次阅读