首先,我很抱歉我的英语不好。
我想问的是,如何打印从不同功能的文本文件中读取的数据。
load()
函数定义如下。
void Picture::load(string filename) throw(string)
{
int x,y;
string line;
fstream infile(filename.c_str(), fstream::in);
if (infile.is_open())
{
if (!getline(infile, line))
throw string("Unable to read the first line.");
istringstream iss(line);
if (!(iss >> height >> width))
throw string("First line does not consist of two integers.");
picture = new char*[width];
for (x=0; x<width; x++)
picture[x] = new char[height];
for (y=0; y<height; y++)
{
getline(infile,line);
if (line.length() < width)
throw string("Line "+convertInt(y+1)+" in picture has an incorrect width.");
else
for (x=0; x<width; x++)
set(x,y,line[x]);
}
infile.close();
}
else throw string("Unable to open file");
}
void Picture::print()
{
// This function will print the data read on load function
}
如何关联这两个功能,以便我可以加载和打印?
很抱歉,如果之前有人问过这个问题。
答案 0 :(得分:0)
将数据存储为您班级的私人成员:
private std::string data;
void loadAndPrint::load()
{
in_file.open("infile.txt");
in_file >> data;
}
void loadAndPrint::print()
{
ofstream out_file("outfile.txt");
if(!out_file.is_open()) throw myError;
out_file << data;
}
答案 1 :(得分:0)
您可以通过引用传递fstream到第二个函数。这使您不必创建私有变量。
编辑:
无法看到整个班级,我无法确定,但看起来您的教练希望您使用NTCA进行此项任务。如果不给您完整的答案,请查看本文,看看它是否回答了您的问题: