0

我有两个功能read()write(). 我在函数中读取了一个文件,read()并将一行存储在一个变量的标题中。现在我希望write()函数将同一行写入新文件。但是我怎样才能使用来自其他函数的相同变量或信息呢?这样做的方法是什么?

以下是有关代码的一些信息:

包括必要的文件后,它说这个

HX_INIT_CLASS(HxCluster,HxVertexSet);

类的名称是 HxCluster,如果有人能告诉我为什么不像我们以简单的方式定义类,那就太好了:class class_name {};

I 有很多功能,其中两个是read()write()。它们都只接受一个参数,即在各自情况下要读取的文件和要写入的文件。我不知道为此编写代码是否会有所帮助。

4

5 回答 5

5

如果我理解你的话,这正是 C++ 中结构/类/对象的用途。例如:

class FileLineWriter
{
public:
    FileLineWriter();

    void read(istream& inputfile);
    void write(ostream& putfile);

private:
    string line_of_text;
};

void FileLineWriter::read(istream& s)
{
    // s >> this->line_of_text; // possible, but probably will not do what you think
    getline(s, this->line_of_text);
}

void FileLineWriter::read(ostream& s)
{
    s << this->line_of_text;
}

...
FileLineWriter writer;
writer.read(firstfile);
writer.write(secondfile);

请注意,以上不是工作代码。这只是一个样本。您将必须修复所有拼写错误、缺少的命名空间、标题、添加流打开/关闭/错误处理等。

于 2013-05-07T11:21:09.227 回答
1

您从读取返回变量并将其作为参数传递给写入。像这样的东西

std::string read()
{
   std::string header = ...
   return header;
}

void write(std::string header)
{
   ...
}

std::string header = read();
write(header);

在函数之间传递信息是一项需要学习的基本 C++ 技能。

于 2013-05-07T11:18:48.950 回答
0

如果我理解这一点,那么我建议您将变量上的信息保存为字符串或整数,具体取决于它是什么类型的信息。

我还建议始终包含一些代码,以便我们能够为您提供更多帮助

于 2013-05-07T11:19:04.220 回答
0

您可以让 write 接受一个参数,void write(std::string text)或者您可以将您读取的字符串作为全局变量存储std::string text在 .cpp 文件的顶部,text = ...在您的 read 函数中(将 ... 替换为 ifstream 或您使用的任何内容),然后text写入你的写功能。

于 2013-05-07T11:19:26.237 回答
-3

当然,使用指针!

void main(){
  char* line = malloc(100*sizeof(char));
  read_function (line);
  write_function (line);
}

void read_function(char* line){
  .... read a line
  strcpy (line, the_line_you_read_from_file);
}

void write_function (char* line){
  fprintf (fp,"%s", line);
}
于 2013-05-07T11:22:54.797 回答