gpt4 book ai didi

c++ - 将数组传递给函数

转载 作者:行者123 更新时间:2023-11-28 08:20:58 25 4
gpt4 key购买 nike

我正在尝试在两个函数之间传递一个数组。 _data 函数是我的数组。它需要3个参数;数组本身,数组的大小和数组的文件名。所以这个函数应该从输入文件 (.txt) 中获取每个元素并将其放入数组中,这似乎没问题。

void _data(string dataArray[], int sizeOfArray, ifstream &fin)
{
const int CharBuffer=20;
char linedata[CharBuffer];
ifstream& getline (char* s, streamsize n );

for(int x = 0; x < sizeOfArray; x++)
{
fin.getline(linedata, CharBuffer);
dataArray[x]=linedata;
cout << dataArray[x] << endl;
}
}

ifstream& operator>>(ifstream &fin, ArrayIntStorage &AIS)
{
string acwData[10000];
_data(acwData, 10000, fin);
return fin;
}

但在下一部分中,我需要将数组中的值输出到文本文件中,我必须在单独的函数中执行此操作。

所以我的问题是,如何在下面的函数中访问存储在上面的 acwData 数组中的数据?(或任何其他函数)

ofstream& operator<<(ofstream& fout, ArrayIntStorage& AIS)
{
return fout;
}

我是否需要以不同方式初始化我的数组函数以包含返回类型?

最佳答案

这段代码有几个问题:

 void _data(string dataArray[], int sizeOfArray, ifstream &fin)

在大多数情况下,以下划线开头的名称是为 C++ 实现保留的 - 不要在您自己的代码中使用它们,除非您已经相当仔细地阅读了 C++ 标准,我怀疑您没有。

 ifstream& getline (char* s, streamsize n );

不要自己声明标准库函数。此函数在 <iostream> 中声明所以你应该#include那个标题。

使用数组是值得怀疑的。由于您显然正在使用 C++ 和标准库,为什么不使用 vector<string>您应该将其作为引用传递给您的函数。

关于c++ - 将数组传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5849893/

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