c++常用头文件

IO流头文件

  • <iostream>  定义一个iostream类型,类型支持从控制台窗口读取数据向控制台窗口写入数据的IO操作. 命名空间std中定义了std::cin、 std::cout、 std::cerr三个流对象。

1、IO对象(控制台io、文件io、内存io)无拷贝和赋值:
    istream ins1, ins2;        ins1 = ins2;    //错误
    oftream ofs1, ofs2;        ofs1 = ofs2;    //错误
    
1、iostream流状态(输入输出流都适用)
    good() 判断流是否是goodbit状态
    bad()  判断流是否是badbit状态
    eof()  判断流是否是eofbit状态
    fail() 判断流是否是badbit或failbit状态
    clear() 清楚流的状态
    这些都是io流类的成员函数,无论是标准输入输出流还是文件流还是字符串流,都是有这一系列的函数。
    
2、缓存区
    ● endl 完成换行并刷新缓冲区的工作;flush 刷新缓冲区,但不输出任何额外的字符;ends 向缓冲区插入一个空字符,然后刷新缓冲区。
    ● 如果想在每次输出操作后都刷新缓冲区, 我们可以使用unitbuf 操纵符。它告诉流在接下来的每次写操作之后都进行一次flush操作。 而nounitbuf 操纵符则重置流, 使其恢复使用正确的系统管理的缓冲区刷新机制:
    
3、关联输入输出流
    当一个输入流被关联到一个输出流时,任何试图从输入流读取数据的操作都会先刷新关联的输出流。标准库将cout和cin关联在一起
    cin.tie(&cout); // 仅仅用来展示:标准库将 cin 和 cout 关联在一起
    //old_tie 指向当前关联到cin的流(如果有的话)
    ostream *old_tie = cin.tie(nullptr); //cin 不再与其他流关联
    
    // 将cin 和 cerr 关联, 这不是一个好的主意, 因为cin应该关联到cout
    cin.tie(&cerr); //读取cin 会刷新cerr 而不是cout
    cin.tie(old_tie); // 重建cin 和 cout 间的正常关联
    
4、istream流常用成员函数
4.1) istream& getline (char* s, streamsize n, char delim )
提取一行的字符串,s 是存储数据的变量的名字,n为输入数据的长度,delim为结束的标志字符(遇到就结束,不理会数据有多长,可以不要)

4.2) istream& ignore (streamsize n = 1, int delim = EOF)
忽略输入流中的n个字符,或者当遇到输入流中有一个值等于delim时停止忽略并返回

4.3) int get();
从指定的输入流中读入一个字符(包括空白字符);遇到输入流中的文件结束符时,此get函数返回EOF;

4.4) istream& get (char& c);
从输入流读取一个字符(包括空白字符),并将其存储在字符变量 c 中。事实上get(char& c)与get( )作用基本相同;

4.5) istream& get (char* s, streamsize n, char delim = ‘\n’);
从输入流中读取n-1个字符,存于字符指针 s指向的内存。如果在读取n-1个字符之前遇到指定的终止字符delim,则提前结束读取。程序会自动在字符串最后增加一个’\0’表示结束;

4.6) int peek();
该函数用于查看输入流当中的下一个字符,但不会将它取出(即它仍在输入流当中)。字符指针仍停留在原来位置上

4.7) istream& putback (char c);
把一个字符放回输入流当中;可用于检查用get()确定数据的开头后将其放回然后再操作。
read() 函数

4.8) istream& read (char* s, streamsize n);
该函数只是纯粹的提取输入流的n长度的数据段并保存在s中,它不会检查s的内容也不会在末尾增加null字符(‘\0’)。如果提取过程中失败,s保存之前提取的内容,且eofbit以及failbit置1。
gcount 函数

4.9) streamsize gcount() const;
统计最后一次非正规操作读取的字符数,非正规操作(即除>>外其他读入输入流数据的操作,如:get, getline, ignore, peek, read, readsome, putback and unget等);

5、ostream流常用操作
5.1) ostream& flush (ostream& os)                    -----刷新输出流

5.2) ostream& put (char c);                            -----无格式,插入一个字符

5.3) (1)ostream& seekp (streampos pos);
    (2)ostream& seekp (streamoff off, ios_base::seekdir way);                    -----移动输出流指针

5.4) streampos tellp();                                -----返回输出流中指定位置的指针值

5.5) ostream& write (const char* s, streamsize n);    -----无格式,插入一字节序列

5.6)格式化输出,这类格式化操作通过setf成员函数来设置,cout.setf(ios::showbase);可以变成cout << showbase;
    ios::basefield类
    //设置按照几进制输出
    ios::dec
    ios::hex
    ios::oct

    ios::floatfield类
    //浮点数显示相关
    ios::scientific 按照科学计数显示浮点数
    ios::fixed  按照固定格式显示浮点数,

    ios::adjustfield类
    //数值对齐方式
    ios::left   数值左对齐,使用填充字符右边填充
    ios::right  数值右对齐 使用填充字符左边填充
    ios::internal 数值中间对齐,左右填充

 

  • <fstream>  定义一个fstream类型,类型支持从文件IO读取数据向文件IO写入数据的IO操作.

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值