• 文件操作


    二进制文件写:

    #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)
  • 相关阅读:
    关于软件设计中遇到的问题
    关于power shell
    如果TChart的发生异常
    重温gof版《设计模式》中的创建型模式
    如何更好的使用cvs
    存储过程返回临时表的问题
    关于bugzilla与svn结合的配置注意事项
    VC知识点:如何用vc6调试CGI程序
    如何让应用程序托盘化
    符号表
  • 原文地址:https://www.cnblogs.com/h-hkai/p/10306557.html
Copyright © 2020-2023  润新知