当前位置: 首页 > article >正文

【C++】I/O流的使用介绍

文章目录

      • 什么是 I/O 流?
      • C++ I/O 流的基本类型
      • 常用的 I/O 操作
        • 1. 标准输入输出
        • 2. 文件输入输出
        • 3. 字符串流

什么是 I/O 流?

在 C++ 中,I/O 流是数据的输入和输出通道。流的本质是一个字节序列,提供了抽象的方式来读写数据。C++ 使用流对象来进行 I/O 操作,主要分为输入流和输出流。

  • 输入流:用于从外部设备(如键盘、文件等)读取数据。常用的输入流对象是 std::cin
  • 输出流:用于向外部设备写入数据。常用的输出流对象是 std::cout

C++ I/O 流的基本类型

C++ 标准库定义了多种 I/O 流类型,最常用的包括:

  1. iostream:包含了标准输入输出流的定义,支持字符的输入输出操作。

    #include <iostream>
    
  2. fstream:用于文件输入输出的流类,允许程序读取和写入文件。

    #include <fstream>
    
  3. stringstream:用于在内存中操作字符串的流,适合在字符串与其他数据类型之间转换。

    #include <sstream>
    

常用的 I/O 操作

1. 标准输入输出

使用 std::cinstd::cout 进行简单的输入输出操作:

#include <iostream>

int main() {
    int number;
    std::cout << "Enter a number: ";
    std::cin >> number;
    std::cout << "You entered: " << number << std::endl;
    return 0;
}
2. 文件输入输出

使用 fstream 进行文件的读写操作:

#include <fstream>
#include <iostream>

int main() {
    std::ofstream outFile("example.txt");
    outFile << "Hello, file!" << std::endl;
    outFile.close();

    std::ifstream inFile("example.txt");
    std::string line;
    while (std::getline(inFile, line)) {
        std::cout << line << std::endl;
    }
    inFile.close();
    return 0;
}
3. 字符串流

使用 stringstream 进行字符串与其他数据类型之间的转换:

#include <sstream>
#include <iostream>

int main() {
    std::string str = "123";
    int number;
    std::stringstream ss(str);
    ss >> number;
    std::cout << "Converted number: " << number << std::endl;
    return 0;
}

http://www.kler.cn/news/327848.html

相关文章:

  • SpringCloud-Alibaba第二代微服务快速入门
  • TCP编程:从入门到实践
  • vscode中文插件安装后不起作用
  • IoT网关的主要功能有哪些?天拓四方
  • 2025考研,报名和初试时间定了!
  • 机器学习学习笔记-20240927
  • ResNet50V2:口腔癌分类
  • 防反接电路设计
  • spark计算引擎-架构和应用
  • linux修改命令别名的方式
  • 【学习笔记】手写 Tomcat 六
  • 每天五分钟深度学习框架pytorch:激活函数在神经网络中的应用
  • 修改ID不能用关键字作为ID校验器-elementPlus
  • 【Java】虚拟线程与Java 8普通线程池的对比
  • PHP反序列化1(基础入门)
  • 单片机内存保护-MPU(Memory Protection Unit)
  • 【最新华为OD机试E卷-支持在线评测】字符串变换最小字符串(100分)多语言题解-(Python/C/JavaScript/Java/Cpp)
  • CSS | 面试题:你知道几种移动端适配方案?
  • Git常用方法——详解
  • 【解密 Kotlin 扩展函数】扩展属性与扩展函数类似(十九)
  • 网络协议 TCP、UDP 和 HTTP
  • 解决QWidget及内部控件只能放大不能缩小的问题
  • Vscode: reason: oom, code: -536870904
  • VBA数据库解决方案第十五讲:Recordset集合中单个数据的精确处理
  • 【无标题】observer: error while loading shared libraries: libmariadb.so.3处理办法
  • 以串口接口为例介绍关于BSP底层架构开发的迭代过程
  • LeetCode 983.最低票价
  • 前端面试:项目细节重难点问题分享(17)
  • 无环SLAM系统集成后端回环检测模块(loop):SC-A-LOAM以及FAST_LIO_SLAM
  • 基于MTK7981平台,学习了解理解SoC上电和boot流程