七. 输入和输出

文章参考:

《C++面向对象程序设计》✍千处细节、万字总结(建议收藏)_白鳯的博客-CSDN博客

C++支持C的输入、输出结构,同时也建立了一套面向对象的输入、输出结构,且更加安全。其输入/输出通过字节流的形式实现。

1. 输入/输出头文件

  • iostream:包含了对输入/输出流进行操作所需的基本信息。其中包含了istreamostream类,并在其中对移位运算符>><<进行重载,用户可以通过已经头文件中已经创建好的cincout对象进行读写操作。
  • fstream:用于用户管理文件的IO操作。
  • strstream:用于字符串流的IO操作。通过它使用字符串流对象对内存字符串空间进行IO。
  • iomanip:用于控制输入/输出的格式。头文件汇中创建了setwfixed等对象。

2. 输入/输出流类

类名 说明 头文件名
ios 抽象流基类 iostream
通用输入流类和其它输入流类 istream iostream
输入文件流类 ifstream fstream
输入字符串流类 istrstream strstream
通用输出流类和其它输出流类 istream iostream
输出文件流类 ofstream fstream
输出字符串流类 ostrstream strstream
通用输入输出流类和其它输入/输出流类的基类 iostream iostream
输入/输出文件流类 fstream fstream
输入/输出字符串流类 strstream strstream

3. 输入/输出预定义对象

在C++提供的输入/输出流库中,有一些预定的流对象,用于流操作。

EG:

  • 标准输入流对象:cin
  • 标准输出流对象:cout
  • 非缓冲型的标准出错流对象:cerr
  • 缓冲型标准出错流对象:clog

4. 常用的输入/输出流成员函数

在使用istreamostream的对象时,常使用到相关成员函数:

  • put():用于输出

    cout/put(单字符/字符型变量/ASCII码);
    
  • get():用于输入。它可以用来接收空白符,而>>运算符默认无法接收空白符。

    cin.get(字符型变量);
    
  • getline():用于输入,可以使用数组或指针

    cin.getline(字符数组, 字符个数, 终止标志字符);
    cin.getline(字符指针, 字符个数, 终止标志字符);
    
  • ignore():用于输入。作用是跳过输入流中n个字符(默认是1个),在遇到指定的终止符时(默认是EOF)提前结束。

    cin.ignore(n,终止字符);
    

5. 输入/输出格式化

C++中,依旧可以使用printf()scanf()函数对输入/输出进行格式化,并在此基础上提供了两种新的格式控制方式:

  • 使用ios类中有关格式控制的流成员函数进行格式控制。
  • 使用称为操作符的特殊类型的函数进行格式控制。

此处省略常用函数。

6. 文件操作

6.1 操作步骤

对文件继续读写的步骤如下:

  1. 建立流文件。
  2. 打开目标文件,没有就新建一个。
  3. 进行读/写操作。
  4. 关闭流文件。

文件流类:

类名 说明 功能
istream 输入文件流类 用于文件的输入
ofstream 输出文件流类 用于文件的输出
fstream 输入/输出文件流类 用于文件的输入/输出

6.2 打开/关闭流文件

打开文件:有两种方式:

  • 三种文件流类的构造函数都会自动打开文件。

  • 使用成员函数opean()打开文件,函数原型如下:

    void open(char const *,int filemode,int =filebuf::openprot);
    
    • 第一个是要打开的文件迷宫

    • 第二个是文件打开方式,可以取以下值:

      image-20231129111533269

    • 第三个是文件保护方式,一般使用默认值。

关闭文件:使用close()成员函数。

posted @   BinaryPrinter  阅读(50)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示