• C++文件流读取


    通过运用ofstream和ifstream类去创建对象来进行文件读写。

    使用文件流新建或打开一个文件,并写入字符串 "This is a test file".

    #include<fstream>
    #include<iostream>
    using namespace std;
    int main()
    {
        ofstream outFile("test.txt",ios::out);
    
        if(!outFile)
            cout<<"Open file or create file error."<<endl;
        else
            outFile<<"This is a file."<<5<<" "<<1.2;
        return 0;
    }

    使用文件流将创建的文件test.txt.中的所有数据读取出来。

    #include<fstream>
    #include<iostream>
    using namespace std;
    int main()
    {
        ifstream inFile("test.txt",ios::in);
        int b;
        char a[100];
        float c;
    
        if(!inFile)
            cout<<"File open error."<<endl;
        else
        {
            inFile>>a;
            in
            cout<<"string--"<<a<<endl;
            cout<<"int--"<<b<<endl;
            cout<<"float--"<<c<<endl;
        }
        return 0;
    }

    使用ifstream类成员函数seekg,结合文件输入输出流,写的一个wav文件解析的应用。

    wav文件解析:

    #include<fstream>
    #include<iostream>
    #include<cstring>
    //#incl
    #define MAX_STR_LEN 32
    using namespace std;
    class wav
    {
        public:
                 char id[4];
        unsigned long file_size;
          //文件大小
        unsigned short channel;            //通道数
        unsigned int frequency;        //采样频率
        unsigned long Bps;                //Byte率
        unsigned short sample_num_bit;    //一个样本的位数
        unsigned long data_size;        //数据大小
        unsigned char *data;            //音频数据 ,这里要定义什么就看样本位数了,我这里只是单纯的复制数据
    };
    int main()
    {
        wav ww;
    
        ifstream inFile("do.wav",ios::in|ios::binary);
        if(!inFile)
            cout<<"error";
        else{
        char buff[4];
        unsigned long tlong ;
        unsigned short tshort;
    
        inFile.seekg(0,ios::beg);
        inFile>>ww.id;
    
        inFile.seekg(12,ios::beg);
        inFile>>buff;
        cout<<"fmt:"<<buff<<endl;
    
        inFile.seekg(16,ios::beg);
        inFile>>buff;
        memcpy(&tlong,buff,sizeof(unsigned long));
        cout<<"fmt size:"<<tlong<<endl;
    
        inFile.seekg(20,ios::beg);
        inFile>>buff;
        memcpy(&tshort,buff,sizeof(unsigned short));
        cout<<"format:"<<tshort<<endl;
    
        inFile.seekg(4,ios::beg);
        inFile>>ww.file_size;
        inFile.seekg(22,ios::beg);
        inFile>>ww.channel;
        inFile.seekg(24,ios::beg);
        cout<<ww.id<<endl<<ww.file_size<<endl<<ww.channel<<endl<<ww.frequency;
        }
        return 0;
    }
  • 相关阅读:
    Codeforces Round #336 (Div. 2) A. Saitama Destroys Hotel 模拟
    UVA 10341 二分搜索
    cscope 的使用
    2018年各大互联网前端面试题三(阿里)
    【前端统计图】hcharts实现堆叠柱形图(与后台数据交互)
    【前端统计图】echarts实现单条折线图
    【前端统计图】echarts实现简单柱状图
    css实现悬浮效果的阴影
    通过select下拉框里的value控制div显示与隐藏
    2018年各大互联网前端面试题四(美团)
  • 原文地址:https://www.cnblogs.com/ZP-Better/p/7079157.html
Copyright © 2020-2023  润新知