0

这是我的第一个问题,如果我看起来没有完成关于我要问的问题的作业,请原谅我,我向你保证我已经扫描了许多互联网页面以寻找答案。

在过去的一个半小时左右,我一直遇到一个小问题,答案对我来说应该很清楚,但我似乎无法解决。我正在编写类“ArrayStorage”的成员函数“void read()”。

我正在使用头文件。


ArrayStorage.h

#include <fstream> // Reading/Writing from file requires this standard library.
#include <iostream> // Needed for cin and cout
#include <ostream> // Needed for outputting to output file
#include <string> // Needed for string values
using namespace std;

#pragma once

class ArrayStorage
{
public:

    void read(ifstream &fin1); //reads data from a file
    void write(ofstream &out1); //output data to an output stream(ostream)
    bool exists(); //return true or false depending whether or not a given word exists
    void stdExists(); //^^ use either std::count() or std::find() inside here

};

ArrayStorage.cpp

#include <fstream>
#include <iostream>
#include <ostream>
#include <string>
#include "ArrayStorage.h"
using namespace std;


void ArrayStorage::read(ifstream &fin1)
{
    int index = 0;
    char *array[5];

    ifstream fin(fin1);
        if(fin.is_open())
        {
            char c;
            while(fin.good())
            {
                fin.get(c);
                fin >> *array[index];
                cout << array[index];
                index++;
            }

            fin.close();
        }
}

void ArrayStorage::write(ofstream &out1)
{
    ofstream fout(out1);

    fout.close();
}

Main.cpp

#include <fstream>
#include <iostream>
using namespace std;

#include "ArrayStorage.h"
#include "LinkedListStorage.h"


int main(int argc, char **argv) {

    string find = "pixel";

    ifstream fin1("data.txt");
    ofstream out1("dataout.txt");

    if(!fin1.is_open()) 
    {
        cout << "FAIL" << endl;
        return 1;
    }

    ArrayStorage arrayStorage1;

    // read in values into data structure
    arrayStorage1.read(fin1);

    // output values in data structure to file
    arrayStorage1.write(out1);

    fin1.close();
    out1.close();
        return 0;
}

错误:

错误 1 ​​错误 C2248: 'std::basic_ios<_Elem,_Traits>::basic_ios' : 无法访问在类 'std::basic_ios<_Elem,_Traits>' c:\program files (x86) 中声明的私有成员...

问题:

我在这里犯了什么错误?任何帮助,将不胜感激。我也知道那里有很多无用的代码,但忽略了我只是想建立我的读取文件方法。

谢谢!

4

1 回答 1

0

ifstream 和 ofstream 类没有公共复制构造函数,当你这样做时你试图调用它们:

ifstream fin(fin1);

ofstream fout(out1);

在您的情况下,只需重写 read() 和 write() 函数以直接使用 fin1 和 out1 。

于 2013-05-16T12:39:37.630 回答