第十四章——输入输出与文件

1.基于控制台的输入输出:iostream(cin,cout,cerr,clog,cout.put//字符输出,cout.write//无格式的输出和格式化的输出,cin.get,cin.getline//字符和字符串的输入,cin.read//无格式的输入和格式化的输入)//read。write主要用于文件访问

2.基于文件的输入输出:fstream

访问文件的四个步骤:

定义一个文件流对象

ifstream in1;
    ofstream out1;
    fstream io;
    

打开文件

 in1.open("D:\\test.dat");
    out1.open("file",ios::out|ios::app|ios::binary);
    

操作文件中的数据

  out1<<x;
    in1>>x;

关闭文件

 in1.close();
    out1.close();


3.格式化的输入输出:iomanip(setw(),setprecision,showbase.....)

4.自定义输出流操纵符

ostream &tab//操纵符名(ostream &os) {return os<<"\t";//需要执行的操作}

#include <iostream>
#include<fstream>
using namespace std;
ostream &tab(ostream &os) {return os<<"\t";}
int main()
{   char ch[100];
    cin.get(ch,80,'.');
    cin.getline(ch,80,'.');
    cin.read("sdddddddd",10);
    cout.put('s').put('\n');
    cout.write("sdsf",7);
    cout<<"a"<<tab<<"c";

    return 0;
}

5.文件的随机访问

 in1.seekp(10,ios::end);
    in1.seekg(2,ios::cur);
    

6.二进制文件的读写

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

int main()
{
    ofstream out;
    ifstream in;
    fstream io;
    int i,x;

    out.open("file");
    if(!out)
        cout<<"creat file error";
    for(i=0;i<10;i++)
    {
        cin>>x;
        out.write((char *)(&x),sizeof(int));

    }
    out.close();

    in.open("file");
    if(!in)
        cout<<"open file error";
        in.read((char *)(&x),sizeof(int));
    while(!in.eof())
    {
        in.read((char *)(&x),sizeof(int));
        cout<<x<<' ';
    }
    in.close();
    cout<<endl;

    io.open("file");
    io.seekp(5*sizeof(int));
    x=20;
    io.write((char *)(&x),sizeof(int));

    io.seekg(0);
    io.read((char *)(&x),sizeof(int));
    while(!io.eof())
    {
        cout<<x<<' ';
          io.read((char *)(&x),sizeof(int));
    }
    io.close();
}


猜你喜欢

转载自blog.csdn.net/weixin_42183904/article/details/80561124