编程语言
首页 > 编程语言> > C++ iostream 输入输出流

C++ iostream 输入输出流

作者:互联网

目录

STL 输入输出流:整体框架

头文件 定义在头文件里的类 / 对象 补充说明
<istream> istream 类、 iostream istream 类是所有输入流的基类
<ostream> ostream ostream 类是所有输出流的基类
<iostream> cin 对象、 cout 对象 cinistream 类的对象;
coutostream 类的对象
<fstream> ifsream 类、 ofstream 类、 fstream
<sstream> istringstream 类、 ostringstream 类、 stringstream

回到顶部


A) 输入、输出流

*** istreamostream 类似,以下以 ostream 展开说明。

1. 简介

回到顶部

2. 格式化输出

回到顶部

3. 流操纵算子

回到顶部

4. cout对象的唯一性

回到顶部


B) 文件输入、输出流

功能 补充说明
ifstream 文件输入流 从文件中读取数据 istream 的子类
在编译期间已经解析完毕
性能较好,取代了 scanf
scanf 是有写入非法内存的风险)
ofstream 文件输出流 将数据写入文件中 ostream 的子类

*** ifstreamofstream 类似,以下以 ifstream 进行说明:

回到顶部

1. 基本使用方法

#include <fstream>
#include <iostream>
using namespace std;

int main() {
    // 打开普通文本文件
    ifsream input("filename.txt");
    
    // 以二进制形式打开文件
    ifstream input("filename.bin", ifstream::binary);
    
    // 确保文件正确打开才进行操作
    if(input) { 
        ...
    }
    
    // 操作完毕,关闭文件
    input.close();
    
    return 0;
}

回到顶部

2. 读入常用操作

回到顶部


C) 字符串输入、输出流

1. 简介

回到顶部

2. 对象内的 buffer

回到顶部

3. 实现类型转换

template<class outtype, class intype>
outtype convert(intype val) {
    static stringstream ss;  // 避免重复初始化
    ss.str("");              // 清空 buffer
    ss.clear();              // 清空状态位
    ss << val;
    outtype result;          // 定义要转换的类型的变量
    ss >> result;
    return result;           // 返回转换后的内容
}

// 使用
string str = convert<string>(921);
int num = convert<int>("122");

回到顶部

标签:输出,iostream,ss,输入输出,C++,buffer,int,ostream,input
来源: https://www.cnblogs.com/bljw-02/p/16323674.html