C++输入输出

来源:互联网 发布:sql基础教程 pdf 编辑:程序博客网 时间:2024/06/11 03:48

头文件:

#include <isream>

    类:istream 

           iostream

#include <ostream>

    类:ostream

#include <fstream>

    类:ifstream

           ofstream

           fstream

   istream

           filebuf  磁盘文件的流缓冲类

#include <sstream>

    类:istringstream

           ostringstream

           stringstream

           stringbuf  字符串缓冲区类

#include <iostream>

类:cin cout cerr

#include <streambuf>

    类:streambuf 抽象流缓冲基类

第一,所有文件的存储都是字节的存储,我们日常在磁盘上保存的其实并不是文件的字符,而是先把字符转换成字节,再把这些字节储存到磁盘。在读取文件时,也是一个字节一个字节的读取,然后生成字节的序列。
第二,字节流可以处理任何对象,但是字符流呢,、只用来处理字符或者字符串。可以这样说,字节流呢,提供了最基本IO功能,可以处理任何IO操作,但是有一点,不可以直接处理Unicode字符,为什么呢,因为Unicode字符是一个单元为2个字节的字符,而字节流的处理单元为1个字节,字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单位的字符形成的。如果使用字节流直接处理Unicode字符的话,由于各种编码实现的不同,就很容易出现乱码
第三,实例上,我们日常处理的很多数据,都是文本,所以我们在字节流之外呢,又提出了字符流的概念,直接按照Java虚拟机的encode来处理,也就是在输出流和输入流之间 进行字符集的转换