我有两个函数read()
和write()
。我在read()
函数中读取了一个文件,并在变量的标题中存储了一行。现在我希望write()
函数将同一行写入新文件。但是,我如何使用来自其他函数的相同变量或信息?这样做的方法是什么?
以下是有关代码的一些信息:
包含必要的文件后,它会说明
HX_INIT_CLASS(HxCluster,HxVertexSet);
该类的名称是HxCluster,如果有人能告诉我为什么我们不能以简单的方式定义类,那就太棒了:class class_name {};
我有很多功能,其中两个是read()
和write()
。它们都只采用一个参数,即在相应的情况下要读取的文件和要写入的文件。我不知道为此编写代码是否有用。
答案 0 :(得分: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);
请注意,上述内容不是正常工作的代码。这只是一个样本。您将必须修复所有拼写错误,缺少名称空间,标题,添加流开/关/错误处理等。
答案 1 :(得分:1)
从read中返回变量并将其作为要写入的参数传递。像这样的东西
std::string read()
{
std::string header = ...
return header;
}
void write(std::string header)
{
...
}
std::string header = read();
write(header);
在函数之间传递信息是学习的基本C ++技能。
答案 2 :(得分:0)
如果我理解了这一点,那么我建议你将变量的信息保存到字符串或int中,具体取决于它是什么类型的信息。
我还建议我们总是包含一些代码,以便能够为您提供更多帮助
答案 3 :(得分:0)
你可以写一个参数,void write(std::string text)
或者你可以将你读到的字符串作为全局变量std::string text
存储在.cpp文件的顶部,text = ...
读取函数(用ifstream替换...或者你使用的任何东西),然后在你的写函数中写text
。
答案 4 :(得分:-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);
}