gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 05:13:28 24 4
gpt4 key购买 nike

我有一个像这样的 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++ 程序中的这个对象来调用显示函数。是否可以?是否可以在两个 c++ 程序中都有 main() 函数?我是 C++ 的新手。请帮助我。

最佳答案

鉴于您的评论,我相信您正在寻找第一个程序中的 std::ofstream 和第二个程序中的 std::ifstream。如果程序 A 是您的第一个代码库非常大的程序,而程序 B 是您的第二个程序,它想要显示来自程序 A 的数据,那么程序 A 将使用 std::ofstream 和程序 B将使用 std::ifstream

如果您点击这些链接,您会找到它们的作用的描述,并且在页面底部有一个代码示例。不要从需要 7-8 小时计算的程序 A 开始。在您甚至可以使用数据进行输入之前,您必须确保输出是正确的,并且途中的任何错误都意味着您将不得不重新启动。如果您想测试和手动验证您的数据,您可以跳过第二个参数,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
}

关于C++程序加载另一个文件的类的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43943764/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com