C ++程序加载另一个文件类的内容

时间:2017-05-12 17:50:38

标签: c++

我有一个像这样的c ++程序:

#include<iostream>
using namespace std;
class A
{
public:
void display();
};
void A::display() {
cout<<"This is from first program";
}
int main()
{
A a1;
a1.display();
return 0;
}

我想将a1保存到文件中,并使用另一个c ++程序中的this对象来调用display函数。可能吗?是否可以在两个c ++程序中都有main()函数?我是C ++的新手。请帮帮我。

2 个答案:

答案 0 :(得分:1)

鉴于您的意见,我相信您在第一个计划中寻找std::ofstream,在第二个计划中寻找std::ifstream。如果程序A是您的第一个具有非常大的代码库的程序而程序B是您想要显示程序A中的数据的第二个程序,则程序A将使用std::ofstream而程序B将使用std::ifstream }。

如果您按照链接进行操作,您将找到他们所做操作的说明,并在页面底部显示代码示例。不要从程序A开始,需要7-8个小时来计算。在您甚至可以使用数据进行输入之前,您必须确保输出正确,并且路上的任何错误都意味着您必须重新启动。如果您想测试并手动验证数据,可以跳过第二个参数std::ofstream ostrm(filename),但是您需要重新操作流的操作方式。根据您的数据,这将是操作的关键部分。

// Code example from cppreference - ofstream
#include <iostream>
#include <fstream>
#include <string>

int main() {
    std::string filename = "Test.b";
    {
        // This will create a file, Test.b, and open an output stream to it.
        std::ofstream ostrm(filename, std::ios::binary);
        // Depending on your data, this is where you'll modify the code
        double d = 3.14;
        ostrm.write(reinterpret_cast<char*>(&d), sizeof d); // binary output
        ostrm << 123 << "abc" << '\n';                      // text output
    }

    // Input stream which will read back the data written to Test.b
    std::ifstream istrm(filename, std::ios::binary);
    double d;
    istrm.read(reinterpret_cast<char*>(&d), sizeof d);
    int n;
    std::string s;
    istrm >> n >> s;
    std::cout << " read back: " << d << " " << n << " " << s << '\n';
}

将数据正确输出到文件后,您可以通过创建std::ifstream来读取数据。确保验证流已打开:

std::ifstream istrm(filename, std::ios::binary);
if(istrm.is_open())
{
    //Process data
}

答案 1 :(得分:0)

这将是你的File.h

#ifndef FILE_H
#define FILE_H

class A
{
public:
void display();
};
#endif

这将是你的File.cpp

#include <iostream>
#include "File.h"

void A::display() {
std::cout<<"This is from first program";
}

这将是你main.cpp

#include <iostream>
#include "File.h"

int main()
{
A a1;
a1.display();
return 0;
}

您可以使用g++ File.cpp main.cpp

进行编译