将字符文件转换为二进制格式文件和将二进制格式文件转换为字符格式文件。

//将字符文件转换为二进制格式文件。
#include"../实践/std_lib_facilities.h"

int main()
try
{   
    //打开输入文件。
    cout << "Please enter the name of the input file:";
    string file_name;
    cin >> file_name;
    ifstream ifs(file_name.c_str());
    if (!ifs)error("can't open ", file_name);
    //-------------------------------------------------------------
    // 打开输出二进制格式文件。
    cout << '\n' << "Please enter the name of the output file:";
    cin >> file_name;
    ofstream ofs(file_name.c_str(),ios_base::binary);
    if (!ofs)error("can't open ", file_name);
    //-------------------------------------------------------------
    //将输入文件内容读入向量中。
    vectorintegers;
    int integer = 0;
    while (ifs >> integer)integers.push_back(integer);
    //--------------------------------------------------------------
    //将向量中的元素读入二进制格式文件中。
    for (int i = 0; i < integers.size(); i++)
        ofs.write(as_bytes(integers[i]), sizeof(int));
    //--------------------------------------------------------------
}
catch (exception& e) {
    cerr << "error: " << e.what() << '\n';
    return 1;
}
catch (...) {
    cerr << "Oops: unknown exception!\n";
    return 2;
};
//--------------------------------------------------------------------
//将二进制格式文件转为字符格式文件。
#include"../实践/std_lib_facilities.h"

int main()
try
{   
    //打开输入二进制格式文件。
    cout << "Please enter the name of the input file:";
    string file_name;
    cin >> file_name;
    ifstream ifs(file_name.c_str(),ios_base::binary);
    if (!ifs)error("can't open ", file_name);
    //-------------------------------------------------------------
    // 打开输出文件。
    cout << '\n' << "Please enter the name of the output file:";
    cin >> file_name;
    ofstream ofs(file_name.c_str());
    if (!ofs)error("can't open ", file_name);
    //-------------------------------------------------------------
    //将二进制输入文件内容读入向量中。
    vectorintegers;
    int integer = 0;
    while (ifs.read(as_bytes(integer),sizeof(int)))integers.push_back(integer);
    //--------------------------------------------------------------
    //将向量中的元素读入字符格式文件中。
    for (int i = 0; i < integers.size(); i++)
        ofs << integers[i]<<' ';
    //----------------------------------------------------------------
}
catch (exception& e) {
    cerr << "error: " << e.what() << '\n';
    return 1;
}
catch (...) {
    cerr << "Oops: unknown exception!\n";
    return 2;
};
//--------------------------------------------------------------------

你可能感兴趣的:(c++)