• 文件操作


    二进制文件写:

    #include<iostream>
    #include<fstream>
    
    using namespace std;
    
    int main(int argc, char const *argv[])
    {
        if (argc != 3) {
            cout << "File name missing!" << endl;
            return 0;
        }
        ifstream inFile(argv[1], ios::binary|ios::in);
        if (!inFile) {
            cout << "Source file open error." << endl;
            return 0;
        }
        ofstream outFile(argv[2], ios::binary|ios::out);
        if (!outFile) {
            cout << "New file open error." << endl;
            inFile.close();
            return 0;
        }
        char c;
        while (inFile.get(c))
            outFile.put(c);
    
        outFile.close();
        inFile.close();
        
        return 0;
    }
    

      

    二进制文件读:

    #include<iostream>
    #include<fstream>
    #include<cstring>
    
    using namespace std;
    
    class CStudent {
    public:
        char szName[20];
        int nScore;
    };
    
    int main()
    {
        CStudent s;
        ifstream InFile("students.dat", ios::out|ios::binary);
        if(!InFile) {
            cout << "error" << endl;
            return 0;
        }
        while (InFile.read((char*)&s, sizeof(s))) {
            int nReadedBytes = InFile.gcount();
            cout << s.szName << " " << s.nScore << endl;
        }
        InFile.close();
        return 0;
    }
    

      

    二进制文件修改:

    #include<iostream>
    #include<fstream>
    #include<cstring>
    
    using namespace std;
    
    class CStudent {
    public:
        char szName[20];
        int nScore;
    };
    
    int main()
    {
        CStudent s;
        fstream iofile("students.dat", ios::in|ios::out|ios::binary);
        if(!iofile) {
            cout << "error" << endl;
            return 0;
        }
        iofile.seekp(2*sizeof(s), ios::beg);
        iofile.write("Mike", strlen("Mike")+1);
        iofile.seekg(0, ios::beg);
        while (iofile.read((char*)&s, sizeof(s))) {
            int nReadedBytes = iofile.gcount();
            cout << s.szName << " " << s.nScore << endl;
        }
        iofile.close();
        return 0;
    }
    

      

    文件拷贝:

    #include<iostream>
    #include<fstream>
    
    using namespace std;
    
    int main(int argc, char const *argv[])
    {
        if (argc != 3) {
            cout << "File name missing!" << endl;
            return 0;
        }
        ifstream inFile(argv[1], ios::binary|ios::in);
        if (!inFile) {
            cout << "Source file open error." << endl;
            return 0;
        }
        ofstream outFile(argv[2], ios::binary|ios::out);
        if (!outFile) {
            cout << "New file open error." << endl;
            inFile.close();
            return 0;
        }
        char c;
        while (inFile.get(c))
            outFile.put(c);
    
        outFile.close();
        inFile.close();
        
        return 0;
    }
    

      

    永远渴望,大智若愚(stay hungry, stay foolish)
  • 相关阅读:
    POJ2762 Going from u to v or from v to u?
    POJ3422或洛谷2045 Kaka's Matrix Travels
    LaTeX数学公式大全
    POJ1966 Cable TV Network
    转:Android中的Handler的机制与用法详解
    Httpservlet cannot be resolved to a type的原因与解决方法
    Textchangedlistener的用法
    contextMenu的使用
    转:android studio 一直卡在Gradle:Build Running的解决办法
    Sqlite操作的一些关键类的官方说明与Intent的startactivityforresult方法
  • 原文地址:https://www.cnblogs.com/h-hkai/p/10306557.html
Copyright © 2020-2023  润新知