C++;:具有随机名称的文件输出 我是C++新手,所以这可能是个很幼稚的问题。 我试图通过从主文件调用函数将数据输出到文件。我在我的主函数中多次调用这个函数,这就是为什么我需要打开append模式来编写文件。这行代码编写输出文件,工作正常: ofstream outFile("result_col2.plt",ios::app); . . outFile.close();

C++;:具有随机名称的文件输出 我是C++新手,所以这可能是个很幼稚的问题。 我试图通过从主文件调用函数将数据输出到文件。我在我的主函数中多次调用这个函数,这就是为什么我需要打开append模式来编写文件。这行代码编写输出文件,工作正常: ofstream outFile("result_col2.plt",ios::app); . . outFile.close();,c++,C++,但是,我想使输出文件的名称随机,我正在尝试以下方法: int number = 1; // let's say ostringstream convert; convert << number; string iLevel_str = convert.str(); string fname = "result_col2" + iLevel_str + ".plt"; ofstream outFile(fname.c_str(),ios::app); . . outFile.close

但是,我想使输出文件的名称随机,我正在尝试以下方法:

int number = 1; // let's say
ostringstream convert;
convert << number;
string iLevel_str = convert.str();
string fname = "result_col2" + iLevel_str + ".plt";
ofstream outFile(fname.c_str(),ios::app);
.
.
outFile.close();
int number=1;//比方说
ostringstream转换;

转换如果您只需要一个随机文件名,您可以使用
std::tmpnam()
标准函数,但它将生成位于系统“temp”目录中的随机文件名


有关详细信息,请参阅:

除非您更改int number=1,否则它将不断打开并追加result\u col21.plt,因此您需要在每次迭代中执行For循环,增加该数字,我猜这是因为您仅将数据追加到第二个文件。在发布的代码中,
number
从未更改。实际上,我是在主循环中调用“number”,它在一个循环中更改,对于每个循环,我都调用此函数。感谢您的帮助,我可以通过删除append mode选项并在main中定义文件名来修复它loop@Bob当我抛出答案时,你的评论真的不可见。我从主循环调用“number”,它在一个循环中变化,对于每个循环,我调用这个函数。感谢您的帮助,我可以通过删除append mode选项并在主循环中定义文件名来修复它