gpt4 book ai didi

C++ 在临时类中创建数组

转载 作者:行者123 更新时间:2023-11-28 03:01:25 27 4
gpt4 key购买 nike

新手问题!我已经启动了一个小项目,该项目将文件中的整数值加载到数组中。 (数组需要随机访问,这就是我选择数组而不是 vector 的原因。)

为了从文件中加载数据值,我创建了一个加载/保存类。加载函数读取文件的第一行,它为我们提供了数组需要的条目总数,然后它将用该文件中的其余值填充数组。

这个加载对象只是临时创建的,我想把数据给程序,然后删除这个对象。

实现此目标的最佳方法是什么?我应该在 main() 中创建数组并将引用传递给加载对象吗?在这种情况下,我如何创建数组以便根据需要加载的数据量重新调整大小?

这是加载/保存类:

class FileIOClass {
public:
FileIOClass();
int ReadFile(char*);

private:

};

这是类的cpp代码:

FileIOClass::FileIOClass() {
}

int FileIOClass::ReadFile(char* file_name) {
string line;
ifstream file;

file.open(file_name, ios::in);

cout << "Loading data...\n";

int num_x, num_y, array_size;
bool machine_header = false;

if (file.is_open()) {
while(getline(file, line)) {
if (line.size() && machine_header == false) {
// Load machine header information
file >> num_x;
file >> num_y;
file >> array_size;
machine_header = true; // machine header has now been read, set this to true.
}
else {
// this is where i want to load the data from the file into an array.
// the size of the array should be equal to the value in array_size.
}
}
cout << "Loading complete!\n";
}
else {cout<<"File did not open!\n";}

file.close();
return 0;
}

这是目前为止的 main.cpp:

int main(int argc, char** argv)
{
FileIOClass data_in;
data_in.ReadFile(argv[1]);

return 0;
}

还有几个其他类将处理数组中包含的数据。

我敢打赌这段代码中有很多奇怪的新手错误 - 请随时指出它们,现在学习这些东西会更好。

谢谢大家!

伊恩。

最佳答案

像这样的东西可能不错:

vector<int> myVector(array_size);
for(int i=0; file && i<array_size; i++) {
file >> myVector[i];
}

关于C++ 在临时类中创建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20744663/

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