передача массива в функцию - PullRequest
0 голосов
/ 01 мая 2011

Я пытаюсь передать массив между двумя функциями.Функция _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;
}

doмне нужно инициализировать мою функцию массива по-другому, чтобы включить тип возвращаемого значения?

1 Ответ

1 голос
/ 01 мая 2011

Несколько ошибок в этом кодеСтандартный довольно близко, что, я подозреваю, у вас нет.

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

Не объявляйте стандартные библиотечные функции самостоятельно.Эта функция объявлена ​​в <iostream>, поэтому вы должны #include этот заголовок.

Использование массива подозрительно.Поскольку вы явно используете C ++ и стандартную библиотеку, почему бы не использовать vector<string>, который вы должны передать в свою функцию в качестве ссылки.

...